import React from 'react'; import { describe, expect, it, beforeEach, vi } from 'vitest'; import { render, screen, waitFor } from '@testing-library/react'; import { OnboardingProgressProvider, useOnboardingProgress } from '..'; const fetchStatusMock = vi.fn(); const trackMock = vi.fn(); vi.mock('../../auth/context', () => ({ useAuth: () => ({ status: 'authenticated', user: { id: 1, role: 'owner' } }), })); vi.mock('../../api', () => ({ fetchOnboardingStatus: () => fetchStatusMock(), trackOnboarding: () => trackMock(), })); function ProgressProbe() { const { progress } = useOnboardingProgress(); return (
{progress.adminAppOpenedAt ?? 'null'} {String(progress.inviteCreated)}
); } describe('OnboardingProgressProvider', () => { beforeEach(() => { fetchStatusMock.mockResolvedValue({ steps: undefined }); trackMock.mockResolvedValue(undefined); window.localStorage.clear(); }); it('handles onboarding status responses without steps', async () => { render( ); await waitFor(() => expect(fetchStatusMock).toHaveBeenCalled()); expect(screen.getByTestId('admin-opened').textContent).toBeTruthy(); expect(screen.getByTestId('invite-created').textContent).toBe('false'); }); });