Files
ArtPlayer/refactor/scripts/demos.test.mjs
T

22 lines
798 B
JavaScript

import assert from 'node:assert/strict'
import fs from 'node:fs'
import path from 'node:path'
import test from 'node:test'
import { validateDemoInventory } from './demos.mjs'
import { refactorDir } from './releases.mjs'
test('Demo inventory rejects missing files, routes and ecosystem packages', () => {
const inventory = JSON.parse(fs.readFileSync(path.join(refactorDir, 'baselines/demo-inventory.json'), 'utf8'))
validateDemoInventory(inventory)
for (const mutate of [
value => value.examples.pop(),
value => value.pages.pop(),
value => value.examples.find(item => item.menuLinks.length).menuLinks.pop(),
value => value.packages.pop(),
]) {
const changed = structuredClone(inventory)
mutate(changed)
assert.throws(() => validateDemoInventory(changed))
}
})