fix(voyage): inline screenshot gallery loads docs/screenshots/ PNGs (31d28f65)
This commit is contained in:
parent
9909ce1066
commit
412b4561f5
5 changed files with 137 additions and 8 deletions
|
|
@ -145,6 +145,38 @@ test.describe('voyage-playground a11y (axe-core)', () => {
|
|||
expect(nodes, `color-contrast violations remain: ${JSON.stringify(nodes, null, 2)}`).toEqual([]);
|
||||
});
|
||||
|
||||
// v4.3 Step 8 — inline screenshot gallery (finding 31d28f65).
|
||||
// Injects a pre-built artifacts object with screenshots[] via the
|
||||
// window.__voyage.scheduleRender hook (avoids webkitdirectory which
|
||||
// is not programmatically triggerable). Asserts the dashboard renders
|
||||
// at least one data:image PNG <img> tag.
|
||||
test('SC1.6 inline gallery — data:image PNGs rendered (31d28f65)', async ({ page }) => {
|
||||
await page.goto('voyage-playground.html');
|
||||
await page.waitForLoadState('domcontentloaded');
|
||||
// 1×1 transparent PNG (same base64 as the fixture file)
|
||||
const SAMPLE_DATA_URL =
|
||||
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg==';
|
||||
await page.evaluate((dataUrl) => {
|
||||
window.__voyage.scheduleRender({
|
||||
artifacts: {
|
||||
basePath: 'fixture-project',
|
||||
storageKey: 'voyage_proj_fixture',
|
||||
brief: { path: 'brief.md', content: '# Fixture', frontmatter: {} },
|
||||
plan: null,
|
||||
review: null,
|
||||
progress: null,
|
||||
research: [],
|
||||
architecture: { overview: null, gaps: null, looseFiles: [] },
|
||||
screenshots: [{ path: 'docs/screenshots/dashboard/sample.png', dataUrl: dataUrl }],
|
||||
looseFiles: [],
|
||||
},
|
||||
});
|
||||
}, SAMPLE_DATA_URL);
|
||||
// The gallery is rendered inside #voyage-dashboard
|
||||
const imgCount = await page.locator('#voyage-dashboard img[src^="data:image/png"]').count();
|
||||
expect(imgCount, 'expected at least one data:image/png <img> in the gallery').toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
test('pixel-diff smoke 1280×900 — light + dark within 2% threshold (SC1 backup)', async ({ page }) => {
|
||||
await page.setViewportSize({ width: 1280, height: 900 });
|
||||
// Light theme baseline
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue