fix: module 10 review round 1 (module-local SpellGrid cards, cast target check, CLI without panic hook)
- SpellGrid cards move to course/10-spellgrid/cards; start-module and verify-references stage course/cards plus module-local cards up to the module, so M5-M9 workspaces get exactly the pre-M10 card set. - cast() rejects a chosen-target spell without a target (checkCast/checkPlay); new test_10_targeted_spell_needs_target. - Rust CLI pre-validates instead of swapping the global panic hook. - Catalog: CRIER noun; DEATHRATTLE/BATTLECRY note on lexicon vs catalog role. - Lesson: design note on mid-movement reparse. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
a0cf9be214
commit
6f576940b7
@@ -21,6 +21,20 @@ test("start_module_copies_course_cards", () => {
|
||||
assert.ok(existsSync(join(ws, "cards/test-fixture.json")));
|
||||
});
|
||||
|
||||
test("start_module_copies_module_cards_up_to_the_module", () => {
|
||||
const early = copyFixture("ws-start");
|
||||
assert.equal(run("start-module.mjs", ["01", early], env).code, 0);
|
||||
assert.ok(existsSync(join(early, "cards/test-fixture.json")));
|
||||
assert.ok(!existsSync(join(early, "cards/module-fixture.json")));
|
||||
const later = copyFixture("ws-start");
|
||||
mkdirSync(join(later, "tests"), { recursive: true });
|
||||
writeFileSync(join(later, "tests/m02.rs"), "");
|
||||
const r = run("start-module.mjs", ["03", later], env);
|
||||
assert.equal(r.code, 0, r.out);
|
||||
assert.ok(existsSync(join(later, "cards/test-fixture.json")));
|
||||
assert.ok(existsSync(join(later, "cards/module-fixture.json")));
|
||||
});
|
||||
|
||||
test("start_module_copies_module_levels", () => {
|
||||
const ws = copyFixture("ws-start");
|
||||
mkdirSync(join(ws, "tests"), { recursive: true });
|
||||
|
||||
Reference in New Issue
Block a user