feat: module 05 assemble
Cards become JSON data in course/cards (one file per card, validated against card.schema.json and the catalog); the M5 references load them via registerCards and interpret effects, replacing content closures. Adds assemble(base, donor, half), the assemble/buffHand effects with an injected chooser, Fleshshape as the data-only Expansion Drop, and stages course/cards in verify-references and start-module. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
55fe5a71d7
commit
e04dc1a11f
73 files changed
+6010
-9
No files matched your search
@@ -46,6 +46,17 @@ test("verify_stage_copies_all_earlier_module_tests", async () => {
|
||||
assert.ok(existsSync(join(dir, "Cargo.toml")));
|
||||
});
|
||||
|
||||
test("verify_stage_copies_course_cards", async () => {
|
||||
// From Module 5 the references load card data from <crate or package root>/cards.
|
||||
process.env.COURSE_ROOT = root;
|
||||
const { planVerification, stage } = await import("../verify-references.mjs");
|
||||
const { existsSync } = await import("node:fs");
|
||||
for (const lang of ["rust", "ts"]) {
|
||||
const dir = stage(planVerification(moduleDirs(), 1)[0], lang);
|
||||
assert.ok(existsSync(join(dir, "cards", "test-fixture.json")), lang);
|
||||
}
|
||||
});
|
||||
|
||||
test("verify_ts_default_installs_dependencies_first", async () => {
|
||||
// A staged reference has no node_modules; a bare `npx vitest` fetches the
|
||||
// latest vitest, which cannot load the reference's vitest.config.ts.
|
||||
|
||||
Reference in new issue
Block a user