| import { describe, expect, it } from "vitest"; | |
| import { summarizeAllowedValues } from "./allowed-values.js"; | |
| describe("summarizeAllowedValues", () => { | |
| it("does not collapse mixed-type entries that stringify similarly", () => { | |
| const summary = summarizeAllowedValues([1, "1", 1, "1"]); | |
| expect(summary).not.toBeNull(); | |
| if (!summary) { | |
| return; | |
| } | |
| expect(summary.hiddenCount).toBe(0); | |
| expect(summary.formatted).toContain('1, "1"'); | |
| expect(summary.values).toHaveLength(2); | |
| }); | |
| it("keeps distinct long values even when labels truncate the same way", () => { | |
| const prefix = "a".repeat(200); | |
| const summary = summarizeAllowedValues([`${prefix}x`, `${prefix}y`]); | |
| expect(summary).not.toBeNull(); | |
| if (!summary) { | |
| return; | |
| } | |
| expect(summary.hiddenCount).toBe(0); | |
| expect(summary.values).toHaveLength(2); | |
| expect(summary.values[0]).not.toBe(summary.values[1]); | |
| }); | |
| }); | |