/** * @copyright nhcarrigan * @license Naomi's Public License * @author Naomi Carrigan */ /* eslint-disable max-nested-callbacks -- Not sure how to better optimise this. */ import compare from "string-comparison"; import { describe, expect, it } from "vitest"; import { phrases } from "../src/config/phrases.ts"; describe("phrases", () => { it("should have enough phrases", () => { expect.assertions(1); expect(phrases.length, "less than 100 phrases").toBeGreaterThan(100); }); it.each(phrases)(`%s should be unique`, (phrase) => { expect.assertions(1); const filtered = phrases.filter((p) => { return p !== phrase; }).map((line) => { return line. replaceAll("{{ mommy }}", ""). replaceAll("{{ name }}", ""); }); const matches = compare.levenshtein.sortMatch(phrase. replaceAll("{{ mommy }}", ""). replaceAll("{{ name }}", ""), filtered); const closest = matches.reverse()[0]; expect(closest?.rating, `${phrase} is not unique! Matches ${closest?.member}`).toBeLessThan(0.8); }); });