Download packages/app/src/context/command.test.ts from SaylorTwift/opencode: direct link, hf CLI and curl.
- Browser
- Download file 2.55 kB
-
https://huggingface.co/SaylorTwift/opencode/resolve/main/packages/app/src/context/command.test.ts
- Command line
-
hf download hf://SaylorTwift/opencode/packages/app/src/context/command.test.ts
-
curl -L -o command.test.ts https://huggingface.co/SaylorTwift/opencode/resolve/main/packages/app/src/context/command.test.ts
2.55 kB
| import { describe, expect, test } from "bun:test" | |
| import { | |
| activeCommandRegistrations, | |
| addCommandRegistration, | |
| commandPaletteOptions, | |
| resolveKeybindOption, | |
| type CommandOption, | |
| } from "./command" | |
| const paletteOptions: CommandOption[] = [ | |
| { id: "settings.open", title: "Open settings" }, | |
| { id: "session.undo", title: "Undo" }, | |
| { id: "file.open", title: "Open file" }, | |
| { id: "hidden", title: "Hidden", hidden: true }, | |
| { id: "disabled", title: "Disabled", disabled: true }, | |
| ] | |
| describe("commandPaletteOptions", () => { | |
| test("keeps visible enabled commands", () => { | |
| expect(commandPaletteOptions(paletteOptions).map((option) => option.id)).toEqual(["settings.open", "session.undo"]) | |
| }) | |
| }) | |
| describe("command registrations", () => { | |
| test("shadows keyed registrations while retaining the previous owner", () => { | |
| const one = () => [{ id: "one", title: "One" }] | |
| const two = () => [{ id: "two", title: "Two" }] | |
| const registrations = addCommandRegistration([{ key: "layout", options: one }], { | |
| key: "layout", | |
| options: two, | |
| }) | |
| const active = activeCommandRegistrations(registrations) | |
| expect(registrations).toHaveLength(2) | |
| expect(active).toHaveLength(1) | |
| expect(active[0]?.options).toBe(two) | |
| const restored = activeCommandRegistrations(registrations.filter((entry) => entry.options !== two)) | |
| expect(restored).toHaveLength(1) | |
| expect(restored[0]?.options).toBe(one) | |
| }) | |
| test("keeps unkeyed registrations additive", () => { | |
| const one = () => [{ id: "one", title: "One" }] | |
| const two = () => [{ id: "two", title: "Two" }] | |
| const next = activeCommandRegistrations(addCommandRegistration([{ options: one }], { options: two })) | |
| expect(next).toHaveLength(2) | |
| expect(next[0]?.options).toBe(two) | |
| expect(next[1]?.options).toBe(one) | |
| }) | |
| }) | |
| describe("resolveKeybindOption", () => { | |
| test("prefers a matching contextual command over the global fallback", () => { | |
| const fallback = { id: "tab.close", title: "Close tab" } | |
| const contextual = { id: "terminal.close", title: "Close terminal", when: () => true } | |
| expect(resolveKeybindOption([fallback, contextual], new KeyboardEvent("keydown"))).toBe(contextual) | |
| }) | |
| test("uses the global fallback outside the command context", () => { | |
| const fallback = { id: "tab.close", title: "Close tab" } | |
| const contextual = { id: "terminal.close", title: "Close terminal", when: () => false } | |
| expect(resolveKeybindOption([fallback, contextual], new KeyboardEvent("keydown"))).toBe(fallback) | |
| }) | |
| }) | |