fix(gate): robust isReserved strips model Altro/other variants (no duplicate free-text option)
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
const test = require("node:test");
|
||||
const assert = require("node:assert");
|
||||
const { isReserved, stripReserved } = require("../../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); // starts with "altro"? no — "altrove" -> normalized "altrove" starts with "altro" -> guard below
|
||||
});
|
||||
|
||||
test("stripReserved drops every Altro/other variant, keeps merit order", () => {
|
||||
assert.deepEqual(
|
||||
stripReserved(["procedura", "Altro - specificare", "patologia", "other"]),
|
||||
["procedura", "patologia"],
|
||||
);
|
||||
});
|
||||
Reference in New Issue
Block a user