Skip to content

Commit 38b658d

Browse files
committed
test: Check grouping on a possibly undefined property
1 parent cec737c commit 38b658d

1 file changed

Lines changed: 26 additions & 0 deletions

File tree

src/utils/array.test.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,30 @@ describe("groupBy", () => {
2727
],
2828
});
2929
});
30+
31+
it("should support providing a default value when a field can be undefined", () => {
32+
interface Food {
33+
name: string;
34+
kind: "fruit" | "vegetable";
35+
variety?: string;
36+
}
37+
38+
const data: Food[] = [
39+
{ name: "apple", kind: "fruit", variety: "gala" },
40+
{ name: "banana", kind: "fruit" },
41+
{ name: "carrot", kind: "vegetable" },
42+
{ name: "daikon", kind: "vegetable" },
43+
];
44+
45+
const actual = groupBy(data, (_) => _.variety ?? "unknown");
46+
47+
expect(actual).toEqual({
48+
gala: [{ name: "apple", kind: "fruit", variety: "gala" }],
49+
unknown: [
50+
{ name: "banana", kind: "fruit" },
51+
{ name: "carrot", kind: "vegetable" },
52+
{ name: "daikon", kind: "vegetable" },
53+
],
54+
});
55+
});
3056
});

0 commit comments

Comments
 (0)