import {expect, test} from "vitest"; import {siteLayout, getPaths} from "@data/site-layout.ts"; // Paths that should be known to Astro statically const astroStaticPaths = new Set( Object.keys(import.meta.glob("/src/pages/**/*.astro")) .map((path) => path .replace("/src/pages", "") .replace(/index\.astro$/, "") .replace(/\.astro$|\.md$/, "") .replace(/\/$/, "") || "/" )); // Paths that exist in the site layout const siteLayoutPaths = new Set([...getPaths(siteLayout), ...getPaths(siteLayout, [], true)]); test('Astro Paths Not Empty', () => { expect(astroStaticPaths).not.toHaveLength(0); console.log(astroStaticPaths); }); test('Site Layout Paths Not Empty', () => { expect(siteLayoutPaths).not.toHaveLength(0); console.log(siteLayoutPaths); }); test('Pages Missing from Site Layout', () => { const astroNotLayoutPaths = astroStaticPaths.difference(siteLayoutPaths); expect(astroNotLayoutPaths).toHaveLength(0); }); test('Pages Missing from Astro Paths', () => { const siteLayoutNotAstroPaths = siteLayoutPaths.difference(astroStaticPaths); expect(siteLayoutNotAstroPaths).toHaveLength(0); });