content: integrate approved project evidence

This commit is contained in:
2026-09-04 23:57:29 +03:00
parent 4735ceffe5
commit 2fce0cedee
15 changed files with 564 additions and 25 deletions

View File

@@ -37,6 +37,11 @@ const syntheticChartPair = [
{ kind: 'image', assetId: 'synthetic-chart-wide', alt: 'Synthetic wide chart evidence.', caption: 'Fictional wide chart.' },
{ kind: 'image', assetId: 'synthetic-chart-tall', alt: 'Synthetic tall chart evidence.', caption: 'Fictional tall chart.' },
] as const;
const approvedMedicationAssetIds = new Set([
'medication-mobile-logs',
'medication-mobile-data-settings',
'medication-mobile-notification-settings',
]);
function withSyntheticProjectMedia(contentInput: unknown, manifestInput: unknown): { content: unknown; manifest: unknown } {
const content = structuredClone(contentInput) as {
@@ -45,6 +50,8 @@ function withSyntheticProjectMedia(contentInput: unknown, manifestInput: unknown
const manifest = structuredClone(manifestInput) as { assets: Array<Record<string, unknown>> };
const project = content.projects.selected[0]!;
manifest.assets = manifest.assets.filter((asset) =>
typeof asset.id !== 'string' || !approvedMedicationAssetIds.has(asset.id));
project.assetIds = syntheticProjectMedia.map((media) => media.assetId);
project.media = syntheticProjectMedia;
project.mediaLayout = 'portrait-strip';
@@ -221,7 +228,7 @@ test('aligns chart-pair captions for deliberately mixed source aspect ratios', a
await page.setViewportSize({ width: 1440, height: 900 });
await loadInformationLayer(page);
const captions = page.locator('.project-media-gallery[data-media-layout="chart-pair"] figcaption');
const captions = page.locator('[data-project-id="footy-tracker"] .project-media-gallery[data-media-layout="chart-pair"] figcaption');
await expect(captions).toHaveCount(2);
const tops = await captions.evaluateAll((nodes) => nodes.map((node) => node.getBoundingClientRect().top));
expect(Math.abs(tops[0]! - tops[1]!)).toBeLessThanOrEqual(1);