});
it("[[Construct]] defaults the preferred label to the empty string", () => {
- assertStrictEquals(new Tag().prefLabel, "");
+ assertEquals({ ...new Tag().prefLabel }, { "@value": "" });
});
it("[[Construct]] correctly sets the preferred label to a simple string", () => {
- assertStrictEquals(
- new Tag("RelationshipTag", "Shadow, Me").prefLabel,
- "Shadow, Me",
+ assertEquals(
+ { ...new Tag("RelationshipTag", "Shadow, Me").prefLabel },
+ { "@value": "Shadow, Me" },
);
});
});
});
+ describe(".For", () => {
+ it("[[Has]] is not present", () => {
+ assertFalse("For" in Tag);
+ });
+ });
+
describe(".all", () => {
it("[[Call]] yields all the persisted tags", () => {
const tags = new Set(function* () {
});
it("[[Call]] throws if passed an invalid I·R·I", () => {
- assertThrows(() => {Tag.fromIRI(`bad iri`)});
+ assertThrows(() => {
+ Tag.fromIRI(`bad iri`);
+ });
});
});
{ "@value": "three", "@language": "en" },
);
assertEquals(
- Array.from(
- tag.altLabels(),
- ($) => typeof $ == "string" ? $ : { ...$ },
- ),
+ Array.from(tag.altLabels(), ($) => ({ ...$ })),
[
- "one",
- "two",
+ { "@value": "one" },
+ { "@value": "two" },
{ "@value": "three", "@language": "en" },
],
);
{ "@value": "three", "@language": "en" },
);
assertEquals(
- Array.from(
- tag.hiddenLabels(),
- ($) => typeof $ == "string" ? $ : { ...$ },
- ),
+ Array.from(tag.hiddenLabels(), ($) => ({ ...$ })),
[
- "one",
- "two",
+ { "@value": "one" },
+ { "@value": "two" },
{ "@value": "three", "@language": "en" },
],
);
});
it("[[Call]] throws when this is not a tag which can be placed in canon", () => {
+ const canon = new Tag("CanonTag");
+ canon.persist();
assertThrows(() => {
- new Tag().addInCanonTag();
+ new Tag().addInCanonTag(canon);
});
});
});
it("[[Call]] throws when this is not a conceptual tag", () => {
+ const involved = new Tag();
+ involved.persist();
assertThrows(() => {
- new Tag().addInvolvesTag();
+ new Tag().addInvolvesTag(involved);
});
});
const tag = new Tag();
tag.addAltLabel("etaoin");
tag.deleteAltLabel();
- assertEquals([...tag.altLabels()], ["etaoin"]);
+ assertEquals(
+ Array.from(tag.altLabels(), ($) => ({ ...$ })),
+ [{ "@value": "etaoin" }],
+ );
});
it("[[Call]] deletes only the provided hidden labels", () => {
{ "@value": "three", "@language": "en" },
{ "@value": "four", "@language": "en" },
);
- assertEquals([...tag.altLabels()], ["four"]);
+ assertEquals(
+ Array.from(tag.altLabels(), ($) => ({ ...$ })),
+ [{ "@value": "four" }],
+ );
});
it("[[Call]] returns this", () => {
const tag = new Tag();
tag.addHiddenLabel("etaoin");
tag.deleteHiddenLabel();
- assertEquals([...tag.hiddenLabels()], ["etaoin"]);
+ assertEquals(
+ Array.from(tag.hiddenLabels(), ($) => ({ ...$ })),
+ [{ "@value": "etaoin" }],
+ );
});
it("[[Call]] deletes only the provided alternative labels", () => {
{ "@value": "three", "@language": "en" },
{ "@value": "four", "@language": "en" },
);
- assertEquals([...tag.hiddenLabels()], ["four"]);
+ assertEquals(
+ Array.from(tag.hiddenLabels(), ($) => ({ ...$ })),
+ [{ "@value": "four" }],
+ );
});
it("[[Call]] returns this", () => {
it("[[Set]] sets the preferred label", () => {
const tag = new Tag();
tag.prefLabel = "one";
- assertStrictEquals(tag.prefLabel, "one");
+ assertEquals({ ...tag.prefLabel }, { "@value": "one" });
tag.prefLabel = { "@value": "two" };
- assertStrictEquals(tag.prefLabel, "two");
+ assertEquals({ ...tag.prefLabel }, { "@value": "two" });
tag.prefLabel = { "@value": "three", "@language": "en" };
assertEquals(
{ ...tag.prefLabel },