Release ForgeFlow 0.8.4 interactive illustrations

This commit is contained in:
NuklearRabbit
2026-07-26 02:28:41 +02:00
parent cb95c407d9
commit 095342b882
10 changed files with 294 additions and 18 deletions
+22 -1
View File
@@ -182,7 +182,10 @@ test("one-click troubleshooting excludes destructive or publishing Git actions",
assert.match(ipc, /action:\s*["']abort-operation["'],\s*safe:\s*false/);
assert.match(ipc, /action:\s*["']push["'],\s*safe:\s*false/);
assert.match(ipc, /const stale = lock\.ageMs >= 10_000/);
assert.match(ipc, /\[\s*["']fast-forward["'],\s*["']fetch["']\s*\]\.includes\(issue\.action\)/);
assert.match(
ipc,
/\[\s*["']fast-forward["'],\s*["']fetch["']\s*\]\.includes\(issue\.action\)/,
);
assert.doesNotMatch(
ipc,
/\[\s*["']fast-forward["'],\s*["']push["'],\s*["']fetch["']\s*\]\.includes\(issue\.action\)/,
@@ -205,3 +208,21 @@ test("premium repository workspace reserves separate rows for actions and releas
assert.match(styles, /prefers-reduced-motion/);
assert.match(styles, /ForgeFlow 0\.8 premium visual system/);
});
test("interactive project illustrations are semantic, responsive and motion-safe", async () => {
const renderer = await readFile(
new URL("../src/renderer/app.js", import.meta.url),
"utf8",
);
const styles = await readFile(
new URL("../src/renderer/styles.css", import.meta.url),
"utf8",
);
assert.match(renderer, /function projectIllustration/);
assert.match(renderer, /data-project-illustration/);
assert.match(renderer, /document\.addEventListener\("pointermove"/);
assert.match(styles, /\.project-illustration/);
assert.match(styles, /@keyframes signal-travel/);
assert.match(styles, /prefers-reduced-motion/);
assert.match(styles, /transform: none !important/);
});