Custom set difference for tests
This commit is contained in:
@@ -2,6 +2,9 @@ import {expect, test} from "vitest";
|
|||||||
|
|
||||||
import {siteLayout, getPaths} from "@data/site-layout.ts";
|
import {siteLayout, getPaths} from "@data/site-layout.ts";
|
||||||
|
|
||||||
|
export const setDifference = <T>(a: Set<T>, b: Set<T>) =>
|
||||||
|
new Set([...a].filter(x => !b.has(x)));
|
||||||
|
|
||||||
// Paths that should be known to Astro statically
|
// Paths that should be known to Astro statically
|
||||||
const astroStaticPaths = new Set(
|
const astroStaticPaths = new Set(
|
||||||
Object.keys(import.meta.glob("/src/pages/**/*.astro"))
|
Object.keys(import.meta.glob("/src/pages/**/*.astro"))
|
||||||
@@ -19,21 +22,18 @@ const siteLayoutPaths = new Set([...getPaths(siteLayout), ...getPaths(siteLayout
|
|||||||
|
|
||||||
test('Astro Paths Not Empty', () => {
|
test('Astro Paths Not Empty', () => {
|
||||||
expect(astroStaticPaths).not.toHaveLength(0);
|
expect(astroStaticPaths).not.toHaveLength(0);
|
||||||
console.log(astroStaticPaths);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test('Site Layout Paths Not Empty', () => {
|
test('Site Layout Paths Not Empty', () => {
|
||||||
expect(siteLayoutPaths).not.toHaveLength(0);
|
expect(siteLayoutPaths).not.toHaveLength(0);
|
||||||
console.log(siteLayoutPaths);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test('Pages Missing from Site Layout', () => {
|
test('Pages Missing from Site Layout', () => {
|
||||||
const astroNotLayoutPaths = astroStaticPaths.difference(siteLayoutPaths);
|
const astroNotLayoutPaths = setDifference(astroStaticPaths, siteLayoutPaths);
|
||||||
|
|
||||||
expect(astroNotLayoutPaths).toHaveLength(0);
|
expect(astroNotLayoutPaths).toHaveLength(0);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('Pages Missing from Astro Paths', () => {
|
test('Pages Missing from Astro Paths', () => {
|
||||||
const siteLayoutNotAstroPaths = siteLayoutPaths.difference(astroStaticPaths);
|
const siteLayoutNotAstroPaths = setDifference(siteLayoutPaths, astroStaticPaths);
|
||||||
expect(siteLayoutNotAstroPaths).toHaveLength(0);
|
expect(siteLayoutNotAstroPaths).toHaveLength(0);
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user