demo-inputs.test.mjs (745B)
1 import test from 'node:test'; 2 import assert from 'node:assert/strict'; 3 import { readFile } from 'node:fs/promises'; 4 import { demoInputLabels } from '../dist/demo-inputs.js'; 5 6 test('curated presentation labels match preset argument counts and known order',async()=>{ 7 const entries=JSON.parse(await readFile(new URL('../catalogue.json',import.meta.url))); 8 for(const entry of entries)for(const [name,preset] of Object.entries(entry.presets??{[entry.export]:entry})) 9 assert.equal(demoInputLabels(entry.id,name).length,preset.arguments.length,`${entry.id}:${name}`); 10 assert.deepEqual(demoInputLabels('shipping','v1'),['Destination','Cart subtotal (cents)','Package weight (grams)']); 11 assert.deepEqual(demoInputLabels('unknown','main'),[]); 12 });