Add screenshot tests

This commit is contained in:
Przemek Więch
2026-05-08 20:24:28 +02:00
parent ac26e6c3cb
commit 29ae67427a
23 changed files with 456 additions and 17 deletions

View File

@@ -0,0 +1,27 @@
import {expect, test} from '@playwright/test';
import {setupGedcomRoute} from './helpers';
test.describe('Core SVG Canvas Layouts @visual', () => {
test.beforeEach(async ({page, context}) => {
await setupGedcomRoute(context);
});
const layouts = [
{view: 'hourglass', selector: '#svgContainer', waitTime: 500},
{view: 'relatives', selector: '#svgContainer', waitTime: 500},
{view: 'donatso', selector: '#dotatsoSvgContainer', waitTime: 1500},
];
for (const layout of layouts) {
test(`chart-${layout.view}`, async ({page}) => {
await page.goto(
`/#/view?url=https://example.org/family.ged&view=${layout.view}`,
);
const container = page.locator(layout.selector);
await container.waitFor({state: 'visible'});
// Wait for D3 rendering and layout stabilization.
await page.waitForTimeout(layout.waitTime);
await expect(container).toHaveScreenshot(`chart-${layout.view}.png`);
});
}
});