splitting tests
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
import { expect, test } from '@playwright/test';
|
||||
import { PDFDocument } from 'pdf-lib';
|
||||
import {
|
||||
createPdf,
|
||||
createPreRotatedPdf,
|
||||
dropFiles,
|
||||
expectPdfDownload,
|
||||
pdfDropzone,
|
||||
trackPageErrors
|
||||
} from './helpers';
|
||||
|
||||
test('rotate turns pages losslessly via /Rotate and reset clears deltas', async ({ page }) => {
|
||||
const pageErrors = trackPageErrors(page);
|
||||
await page.goto('/tools/rotate');
|
||||
await dropFiles(page, pdfDropzone(page), [
|
||||
{ name: 'drehung.pdf', mimeType: 'application/pdf', buffer: await createPdf(3, 'Drehen') }
|
||||
]);
|
||||
|
||||
const downloadButton = page.getByRole('button', { name: 'Drehen & herunterladen' });
|
||||
await expect(page.getByRole('button', { name: 'Seite 2 um 90° nach rechts drehen' })).toBeVisible(
|
||||
{
|
||||
timeout: 15_000
|
||||
}
|
||||
);
|
||||
await expect(downloadButton).toBeDisabled();
|
||||
|
||||
const rotateRightPage2 = page.getByRole('button', { name: 'Seite 2 um 90° nach rechts drehen' });
|
||||
await rotateRightPage2.click();
|
||||
await rotateRightPage2.click();
|
||||
await expect(page.getByText('1 von 3 Seiten gedreht')).toBeVisible();
|
||||
await expect(page.getByText('180°', { exact: true })).toBeVisible();
|
||||
|
||||
const downloadPromise = page.waitForEvent('download');
|
||||
await downloadButton.click();
|
||||
const bytes = await expectPdfDownload(await downloadPromise, /^drehung_gedreht\.pdf$/);
|
||||
const output = await PDFDocument.load(bytes);
|
||||
expect(output.getPage(1).getRotation().angle).toBe(180);
|
||||
expect(output.getPage(0).getRotation().angle).toBe(0);
|
||||
|
||||
await page.getByRole('button', { name: 'Zurücksetzen' }).click();
|
||||
await expect(page.getByText('0 von 3 Seiten gedreht')).toBeVisible();
|
||||
await expect(downloadButton).toBeDisabled();
|
||||
expect(pageErrors).toEqual([]);
|
||||
});
|
||||
|
||||
test('rotate adds the delta on top of an existing /Rotate value', async ({ page }) => {
|
||||
const pageErrors = trackPageErrors(page);
|
||||
await page.goto('/tools/rotate');
|
||||
await dropFiles(page, pdfDropzone(page), [
|
||||
{
|
||||
name: 'vorgedreht.pdf',
|
||||
mimeType: 'application/pdf',
|
||||
buffer: await createPreRotatedPdf(2, 'Vorgedreht')
|
||||
}
|
||||
]);
|
||||
|
||||
await expect(page.getByRole('button', { name: 'Seite 1 um 90° nach rechts drehen' })).toBeVisible(
|
||||
{
|
||||
timeout: 15_000
|
||||
}
|
||||
);
|
||||
await page.getByRole('button', { name: 'Seite 1 um 90° nach rechts drehen' }).click();
|
||||
await expect(page.getByText('1 von 2 Seiten gedreht')).toBeVisible();
|
||||
|
||||
const downloadPromise = page.waitForEvent('download');
|
||||
await page.getByRole('button', { name: 'Drehen & herunterladen' }).click();
|
||||
const bytes = await expectPdfDownload(await downloadPromise, /^vorgedreht_gedreht\.pdf$/);
|
||||
const output = await PDFDocument.load(bytes);
|
||||
expect(output.getPage(0).getRotation().angle).toBe(180);
|
||||
expect(output.getPage(1).getRotation().angle).toBe(0);
|
||||
expect(pageErrors).toEqual([]);
|
||||
});
|
||||
Reference in New Issue
Block a user