Update WorkspaceDataContext tests to handle asynchronous loading states

This commit is contained in:
2025-07-06 00:51:48 +02:00
parent d0cdc48f3e
commit 7a31bd4c76

View File

@@ -114,7 +114,7 @@ describe('WorkspaceDataContext', () => {
}); });
describe('WorkspaceDataProvider initialization', () => { describe('WorkspaceDataProvider initialization', () => {
it('initializes with null workspace and loading state', () => { it('initializes with null workspace and loading state', async () => {
(mockGetLastWorkspaceName as ReturnType<typeof vi.fn>).mockResolvedValue( (mockGetLastWorkspaceName as ReturnType<typeof vi.fn>).mockResolvedValue(
null null
); );
@@ -127,9 +127,13 @@ describe('WorkspaceDataContext', () => {
expect(result.current.loading).toBe(true); expect(result.current.loading).toBe(true);
expect(result.current.workspaces).toEqual([]); expect(result.current.workspaces).toEqual([]);
expect(result.current.settings).toEqual(DEFAULT_WORKSPACE_SETTINGS); expect(result.current.settings).toEqual(DEFAULT_WORKSPACE_SETTINGS);
await waitFor(() => {
expect(result.current.loading).toBe(false);
});
}); });
it('provides all expected functions', () => { it('provides all expected functions', async () => {
(mockGetLastWorkspaceName as ReturnType<typeof vi.fn>).mockResolvedValue( (mockGetLastWorkspaceName as ReturnType<typeof vi.fn>).mockResolvedValue(
null null
); );
@@ -141,6 +145,10 @@ describe('WorkspaceDataContext', () => {
expect(typeof result.current.loadWorkspaces).toBe('function'); expect(typeof result.current.loadWorkspaces).toBe('function');
expect(typeof result.current.loadWorkspaceData).toBe('function'); expect(typeof result.current.loadWorkspaceData).toBe('function');
expect(typeof result.current.setCurrentWorkspace).toBe('function'); expect(typeof result.current.setCurrentWorkspace).toBe('function');
await waitFor(() => {
expect(result.current.loading).toBe(false);
});
}); });
it('loads last workspace when available', async () => { it('loads last workspace when available', async () => {
@@ -633,7 +641,7 @@ describe('WorkspaceDataContext', () => {
}); });
describe('loading states', () => { describe('loading states', () => {
it('shows loading during initialization', () => { it('shows loading during initialization', async () => {
let resolveGetLastWorkspaceName: (value: string | null) => void; let resolveGetLastWorkspaceName: (value: string | null) => void;
const pendingPromise = new Promise<string | null>((resolve) => { const pendingPromise = new Promise<string | null>((resolve) => {
resolveGetLastWorkspaceName = resolve; resolveGetLastWorkspaceName = resolve;
@@ -648,8 +656,13 @@ describe('WorkspaceDataContext', () => {
expect(result.current.loading).toBe(true); expect(result.current.loading).toBe(true);
act(() => { await act(async () => {
resolveGetLastWorkspaceName!(null); resolveGetLastWorkspaceName!(null);
await pendingPromise;
});
await waitFor(() => {
expect(result.current.loading).toBe(false);
}); });
}); });