test(web): cover prune-fields, labels, format-date, delete-in-use dialog (#67)
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
import { expect, test } from "vitest";
|
||||
|
||||
import { pruneFields } from "./prune-fields";
|
||||
|
||||
test("drops empty/null/undefined scalars, keeps real scalars", () => {
|
||||
const out = pruneFields(
|
||||
{ a: "x", b: "", c: null, d: undefined, e: 0, f: false },
|
||||
new Set(),
|
||||
"en",
|
||||
);
|
||||
expect(out).toEqual({ a: "x", e: 0, f: false });
|
||||
});
|
||||
|
||||
test("a localized_text key keeps only the default-language entry", () => {
|
||||
const out = pruneFields(
|
||||
{ title: { en: "Bowl", sv: "Skål" } },
|
||||
new Set(["title"]),
|
||||
"sv",
|
||||
);
|
||||
expect(out).toEqual({ title: { sv: "Skål" } });
|
||||
});
|
||||
|
||||
test("a non-localized object value keeps all non-empty entries", () => {
|
||||
const out = pruneFields(
|
||||
{ dims: { w: "10", h: "", d: "5" } },
|
||||
new Set(),
|
||||
"en",
|
||||
);
|
||||
expect(out).toEqual({ dims: { w: "10", d: "5" } });
|
||||
});
|
||||
|
||||
test("an object value left with no entries is dropped entirely", () => {
|
||||
const out = pruneFields(
|
||||
{ title: { en: "Bowl" }, empty: { en: "", sv: "" } },
|
||||
new Set(["title", "empty"]),
|
||||
"sv",
|
||||
);
|
||||
expect(out).toEqual({});
|
||||
});
|
||||
Reference in New Issue
Block a user