62 lines
2.1 KiB
TypeScript
62 lines
2.1 KiB
TypeScript
import { test, expect, Page } from '@playwright/test';
|
|
|
|
// Upload a sample epub or pdf
|
|
async function uploadFile(page: Page, filePath: string) {
|
|
const fileChooserPromise = page.waitForEvent('filechooser');
|
|
await page.getByText('Drop your file here, or click to select').click();
|
|
const fileChooser = await fileChooserPromise;
|
|
await fileChooser.setFiles(filePath);
|
|
}
|
|
|
|
test.describe('Document Upload and Display', () => {
|
|
test.beforeEach(async ({ page }) => {
|
|
// Navigate to the home page before each test
|
|
await page.goto('/');
|
|
|
|
// Click the "done" button to dismiss the welcome message
|
|
await page.getByText('Done').click();
|
|
});
|
|
|
|
test.describe('PDF handling', () => {
|
|
test('should upload a PDF document', async ({ page }) => {
|
|
// Upload the file
|
|
await uploadFile(page, './public/sample.pdf');
|
|
|
|
// Verify upload success
|
|
await expect(page.getByText('sample.pdf')).toBeVisible({ timeout: 10000 });
|
|
});
|
|
|
|
test('should display a PDF document', async ({ page }) => {
|
|
// Upload the file
|
|
await uploadFile(page, './public/sample.pdf');
|
|
|
|
// Click on the uploaded document
|
|
await page.getByText('sample.pdf').click({ timeout: 10000 });
|
|
|
|
// Verify PDF viewer is displayed
|
|
await expect(page.locator('.react-pdf__Document')).toBeVisible({ timeout: 10000 });
|
|
await expect(page.locator('.react-pdf__Page')).toBeVisible({ timeout: 10000 });
|
|
});
|
|
});
|
|
|
|
test.describe('EPUB handling', () => {
|
|
test('should upload and display EPUB document', async ({ page }) => {
|
|
// Upload the file
|
|
await uploadFile(page, './public/sample.epub');
|
|
|
|
// Verify upload success
|
|
await expect(page.getByText('sample.epub')).toBeVisible({ timeout: 10000 });
|
|
});
|
|
|
|
test('should display an EPUB document', async ({ page }) => {
|
|
// Upload the file
|
|
await uploadFile(page, './public/sample.epub');
|
|
|
|
// Click on the uploaded document
|
|
await page.getByText('sample.epub').click({ timeout: 10000 });
|
|
|
|
// Verify EPUB viewer is displayed
|
|
await expect(page.locator('.epub-container')).toBeVisible({ timeout: 10000 });
|
|
});
|
|
});
|
|
});
|