Add five new light theme options (lavender, rose, sand, sky, slate) with dedicated color palettes. Redesign Settings modal with sidebar navigation replacing tabs, add visual theme color selector showing preview swatches, and introduce new icons (KeyIcon, PaletteIcon, UserIcon, DocumentIcon). Also update PrivacyModal to render conditionally based on authEnabled and add privacy policy link. Update tests to reflect new UI structure.
55 lines
2 KiB
TypeScript
55 lines
2 KiB
TypeScript
import { test, expect } from '@playwright/test';
|
|
import { setupTest, uploadFile, expectDocumentListed, expectNoDocumentLink, deleteDocumentByName, deleteAllLocalDocuments, ensureDocumentsListed } from './helpers';
|
|
|
|
test.describe('Document deletion flow', () => {
|
|
test.beforeEach(async ({ page }, testInfo) => {
|
|
await setupTest(page, testInfo);
|
|
});
|
|
|
|
test('deletes a document and updates list', async ({ page }) => {
|
|
// Upload two documents
|
|
await uploadFile(page, 'sample.pdf');
|
|
await uploadFile(page, 'sample.txt');
|
|
|
|
// Verify both appear
|
|
await expectDocumentListed(page, 'sample.pdf');
|
|
await expectDocumentListed(page, 'sample.txt');
|
|
|
|
// Delete the TXT document via row action
|
|
await deleteDocumentByName(page, 'sample.txt');
|
|
|
|
// Assert the TXT document is removed, PDF remains
|
|
await expectNoDocumentLink(page, 'sample.txt');
|
|
await expectDocumentListed(page, 'sample.pdf');
|
|
|
|
// Optional: summary exists (best-effort)
|
|
const summary = page.locator('[data-doc-summary]');
|
|
await expect(summary).toBeVisible();
|
|
});
|
|
|
|
test('deletes all local documents from Settings modal', async ({ page }) => {
|
|
// This test only applies when auth is NOT enabled, since with auth
|
|
// the bulk-delete UI lives in the delete-account flow instead.
|
|
test.skip(
|
|
Boolean(process.env.AUTH_SECRET && process.env.BASE_URL),
|
|
'Bulk document deletion is part of the delete-account flow when auth is enabled',
|
|
);
|
|
|
|
// Upload multiple docs (PDF + EPUB)
|
|
await uploadFile(page, 'sample.pdf');
|
|
await uploadFile(page, 'sample.epub');
|
|
|
|
// Verify both appear
|
|
await ensureDocumentsListed(page, ['sample.pdf', 'sample.epub']);
|
|
|
|
// Delete all local documents via Settings
|
|
await deleteAllLocalDocuments(page);
|
|
|
|
// Assert both documents are removed
|
|
await expectNoDocumentLink(page, 'sample.pdf');
|
|
await expectNoDocumentLink(page, 'sample.epub');
|
|
|
|
// Uploader should be visible when no docs remain
|
|
await expect(page.locator('input[type=file]')).toBeVisible({ timeout: 10000 });
|
|
});
|
|
});
|