feat: module 10 spellgrid
SpellGrid capstone: Part I's card engine and Part II's grid engine joined at three seams (rules -> aura data, hazard victims -> one destroy Sequence, Sequence end -> write text, remove the dead, reparse). Three levels with scripted solutions, a naive-timing test via a harness-only hook that reverses the END_OF_PHASE list, CLIs in both tracks, the BATTLECRY IS DOUBLE Expansion Drop, SpellGrid cards and words in course/cards and the catalog, level schema cards/hand, and tools staging/copying of module levels. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
1f3359cfe2
commit
a0cf9be214
96 files changed
+10454
-8
No files matched your search
@@ -66,3 +66,13 @@ test("verify_ts_default_installs_dependencies_first", async () => {
|
||||
assert.equal(commandFor("ts", { VERIFY_CMD_TS: "true" }), "true");
|
||||
assert.equal(commandFor("rust", {}), "cargo test");
|
||||
});
|
||||
|
||||
test("verify_stage_copies_module_levels", async () => {
|
||||
// From Module 10 the tests load puzzle levels from <crate or package root>/levels.
|
||||
process.env.COURSE_ROOT = root;
|
||||
const { planVerification, stage } = await import("../verify-references.mjs");
|
||||
const { existsSync } = await import("node:fs");
|
||||
const plans = planVerification(moduleDirs(), 3);
|
||||
assert.ok(existsSync(join(stage(plans[2], "ts"), "levels", "fixture-level.json")));
|
||||
assert.ok(!existsSync(join(stage(plans[1], "ts"), "levels")));
|
||||
});
|
||||
Reference in new issue
Block a user