seedmarkfile
seedmark/tests/layers.test.js/

tests/layers.test.js raw
1import test from 'node:test';
2import assert from 'node:assert/strict';
3import {recipe, FAMILIES} from '../src/index.js';
4import {render} from '../src/render.js';
5test('every grammar responds to independently varied composition, shape and feature axes', () => {
6 for (const family of FAMILIES) {
7 const r = JSON.parse(JSON.stringify(recipe('axis-fixture')));
8 r.family = family;
9 for (const layer of ['layout', 'silhouette', 'features']) {
10 const variants = Array.from({length: 4}, (_, variant) => render({...r, [layer]: {...r[layer], variant}}));
11 assert.equal(new Set(variants).size, 4, `${family} ${layer}`);
12 }
13 }
14});
15test('texture variants change only the independent texture layer', () => {
16 const r = recipe('texture-fixture');
17 const variants = Array.from({length: 3}, (_, variant) => render({...r, texture: {...r.texture, variant}}));
18 assert.equal(new Set(variants).size, 3);
19 const foreground = svg => svg.slice(svg.indexOf('<g transform='));
20 assert.equal(new Set(variants.map(foreground)).size, 1);
21});

About

ownerba1b5beed5b5
visibilitypublic
headc808a940bc19

Maintainers

  • ba1b5beed5b5 owner

Clone

  • https://012.run/npub1hgd4hmk4kkukjx7yf402adl7msw0ssnmqmt0y6sgz0j8yjjcj9nqh9znde/seedmark.git

Refs