const test = require("node:test"); const assert = require("node:assert"); const { isReserved, stripReserved } = require("../core/reserved-labels.mjs"); test("Altro variants (any punctuation/case) are reserved", () => { assert.equal(isReserved("Altro — specifica…"), true); assert.equal(isReserved("Altro - specificare"), true); assert.equal(isReserved("altro"), true); assert.equal(isReserved("ALTRO (specificare)"), true); }); test("English Other variant is reserved", () => { assert.equal(isReserved("Other — specify"), true); assert.equal(isReserved("other"), true); }); test("canonical quit/back labels stay reserved", () => { assert.equal(isReserved("Esci da Pi (/quit)"), true); assert.equal(isReserved("Torna indietro (fase precedente)"), true); }); test("normal merit options are NOT reserved", () => { assert.equal(isReserved("procedura"), false); assert.equal(isReserved("patologia"), false); assert.equal(isReserved("altrove"), false); // only the exact first token "altro" is reserved, not words that merely start with it }); test("stripReserved drops every Altro/other variant, keeps merit order", () => { assert.deepEqual( stripReserved(["procedura", "Altro - specificare", "patologia", "other"]), ["procedura", "patologia"], ); });