summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/context/command.test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/app/src/context/command.test.ts')
-rw-r--r--packages/app/src/context/command.test.ts25
1 files changed, 25 insertions, 0 deletions
diff --git a/packages/app/src/context/command.test.ts b/packages/app/src/context/command.test.ts
new file mode 100644
index 000000000..2b956287c
--- /dev/null
+++ b/packages/app/src/context/command.test.ts
@@ -0,0 +1,25 @@
+import { describe, expect, test } from "bun:test"
+import { upsertCommandRegistration } from "./command"
+
+describe("upsertCommandRegistration", () => {
+ test("replaces keyed registrations", () => {
+ const one = () => [{ id: "one", title: "One" }]
+ const two = () => [{ id: "two", title: "Two" }]
+
+ const next = upsertCommandRegistration([{ key: "layout", options: one }], { key: "layout", options: two })
+
+ expect(next).toHaveLength(1)
+ expect(next[0]?.options).toBe(two)
+ })
+
+ test("keeps unkeyed registrations additive", () => {
+ const one = () => [{ id: "one", title: "One" }]
+ const two = () => [{ id: "two", title: "Two" }]
+
+ const next = upsertCommandRegistration([{ options: one }], { options: two })
+
+ expect(next).toHaveLength(2)
+ expect(next[0]?.options).toBe(two)
+ expect(next[1]?.options).toBe(one)
+ })
+})