feat(dashboard): close legacy parity gaps
This commit is contained in:
1 parent
92287c0a9a
commit
4b3f00729f
21 files changed
+397
-28
No files matched your search
@@ -7,7 +7,7 @@ import userEvent from '@testing-library/user-event';
|
||||
import { HttpResponse, http } from 'msw';
|
||||
import { setupServer } from 'msw/node';
|
||||
import type { PropsWithChildren, ReactElement } from 'react';
|
||||
import { afterAll, afterEach, beforeAll, describe, expect, it } from 'vitest';
|
||||
import { afterAll, afterEach, beforeAll, describe, expect, it, vi } from 'vitest';
|
||||
import { OperationsPage } from '../../apps/dashboard/src/features/operations/operations-page.js';
|
||||
import { PerformancePage } from '../../apps/dashboard/src/features/performance/performance-page.js';
|
||||
|
||||
@@ -139,5 +139,35 @@ describe('OperationsPage', () => {
|
||||
expect(consoleRegion).toHaveTextContent('No logs match the current filters.');
|
||||
expect(within(consoleRegion).getByRole('button', { name: 'Pause console' })).toHaveAttribute('aria-pressed', 'false');
|
||||
expect(within(consoleRegion).getByLabelText('Auto-scroll')).toBeChecked();
|
||||
await user.clear(within(consoleRegion).getByLabelText('Search logs'));
|
||||
await user.click(within(consoleRegion).getByRole('button', { name: 'Clear local console' }));
|
||||
expect(consoleRegion).toHaveTextContent('Server logs were not deleted');
|
||||
});
|
||||
|
||||
it('starts delta sync directly and confirms expensive chat cache operations', async () => {
|
||||
let deltaCalls = 0;
|
||||
let fullCalls = 0;
|
||||
server.use(
|
||||
http.get('/api/activity', () => HttpResponse.json([])),
|
||||
http.get('/api/logs', () => HttpResponse.json([])),
|
||||
http.get('/api/chats/sync', () => HttpResponse.json({ syncing: false, syncingKind: null, lastFullSyncAt: null, lastDeltaSyncAt: null, hasEverFullSynced: false, cachedChats: 2, progress: null })),
|
||||
http.post('/api/chats/sync/delta', () => { deltaCalls += 1; return HttpResponse.json({ success: true, kind: 'delta' }); }),
|
||||
http.post('/api/chats/sync/full', () => { fullCalls += 1; return HttpResponse.json({ success: true, kind: 'full' }); }),
|
||||
http.post('/api/chats/fetch-all', () => HttpResponse.json({ success: true, count: 7 })),
|
||||
);
|
||||
const confirmSpy = vi.spyOn(globalThis, 'confirm').mockReturnValue(false);
|
||||
const user = userEvent.setup();
|
||||
renderPage(<OperationsPage realtimeEnabled={false} />);
|
||||
await user.click(await screen.findByRole('button', { name: 'Sync latest chats' }));
|
||||
expect(await screen.findByText(/Delta sync started/)).toBeInTheDocument();
|
||||
expect(deltaCalls).toBe(1);
|
||||
await user.click(screen.getByRole('button', { name: 'Full cache sync' }));
|
||||
expect(fullCalls).toBe(0);
|
||||
confirmSpy.mockReturnValue(true);
|
||||
await user.click(screen.getByRole('button', { name: 'Full cache sync' }));
|
||||
expect(await screen.findByText(/Full sync started/)).toBeInTheDocument();
|
||||
expect(fullCalls).toBe(1);
|
||||
await user.click(screen.getByRole('button', { name: 'Fetch all chats' }));
|
||||
expect(await screen.findByText('Fetched 7 chats.')).toBeInTheDocument();
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user