Implement rule-based Studio creation, usable canvas and Reader, and consolidated package authoring

This commit is contained in:
Timothy J. Aveni
2026-09-23 00:53:01 -07:00
parent 8455599c3c
commit abd5d57fb9
6 changed files with 22 additions and 12 deletions
+14
View File
@@ -101,3 +101,17 @@ test("conformance enrollment, major edits, imports, and private attachment remov
const imported = editStructure(removed, { operation: "import", kind: "interface", name: "Playable" });
assert.equal(editStructure(imported, { operation: "import", kind: "interface", name: "Playable" }), imported);
});
test("enrolling a generic conformance or rule places its identity after target arguments", () => {
for (const source of [
"fragment { conform Game as View<atom Game> {} }",
"fragment { conform<object T> Source<T> as View<T> {} }",
]) {
const enrolled = editStructure(source, {
operation: "conformance-id",
target: { kind: "conformanceDecl" },
id: "rule:view",
});
assert.match(enrolled, /as View<[^>]+> id "rule:view"/);
}
});