refactor(normalization): reuse trimmed list helpers (#113295)

This commit is contained in:
Vincent Koc
2026-07-24 17:43:22 +08:00
committed by GitHub
parent 89643f6401
commit e3636852ba
7 changed files with 33 additions and 58 deletions
@@ -3,10 +3,12 @@ import { describe, expect, it } from "vitest";
import {
normalizeAtHashSlug,
normalizeHyphenSlug,
normalizeOptionalTrimmedStringList,
normalizeSortedUniqueStringEntries,
normalizeSortedUniqueTrimmedStringList,
normalizeStringEntries,
normalizeStringEntriesLower,
normalizeTrimmedStringList,
normalizeUniqueSingleOrTrimmedStringList,
normalizeUniqueStringEntries,
normalizeUniqueStringEntriesLower,
@@ -59,6 +61,14 @@ describe("normalization-core/string-normalization", () => {
expect(normalizeUniqueTrimmedStringList("b")).toEqual([]);
});
it("normalizes array-backed trimmed string lists", () => {
const values = [" first ", "", 42, " second ", null];
expect(normalizeTrimmedStringList(values)).toEqual(["first", "second"]);
expect(normalizeTrimmedStringList("first")).toEqual([]);
expect(normalizeOptionalTrimmedStringList(values)).toEqual(["first", "second"]);
expect(normalizeOptionalTrimmedStringList(["", 42])).toBeUndefined();
});
it("normalizes sorted unique trimmed string lists", () => {
expect(normalizeSortedUniqueTrimmedStringList([" b ", "a", "b", "", "a"])).toEqual(["a", "b"]);
expect(normalizeSortedUniqueTrimmedStringList(["z", 1, " a "] as unknown[])).toEqual([