Skip to main content
Glama
CommanderBinderProgramResolutionSpaceTests.swift3.35 kB
import Commander import Testing @testable import PeekabooCLI @Suite("Commander Binder Program Resolution (Space + Dialog)") struct CommanderBinderSpaceDialogTests { @Test("Commander program resolves space list options") @MainActor func commanderResolvesSpaceList() throws { let descriptors = CommanderRegistryBuilder.buildDescriptors() let program = Program(descriptors: descriptors.map(\.metadata)) let invocation = try program.resolve(argv: [ "peekaboo", "space", "list", "--detailed" ]) let values = invocation.parsedValues #expect(values.flags.contains("detailed")) } @Test("Commander program resolves space switch options") @MainActor func commanderResolvesSpaceSwitch() throws { let descriptors = CommanderRegistryBuilder.buildDescriptors() let program = Program(descriptors: descriptors.map(\.metadata)) let invocation = try program.resolve(argv: [ "peekaboo", "space", "switch", "--to", "3" ]) let values = invocation.parsedValues #expect(values.options["to"] == ["3"]) } @Test("Commander program resolves space move-window options") @MainActor func commanderResolvesSpaceMoveWindow() throws { let descriptors = CommanderRegistryBuilder.buildDescriptors() let program = Program(descriptors: descriptors.map(\.metadata)) let invocation = try program.resolve(argv: [ "peekaboo", "space", "move-window", "--app", "Safari", "--window-title", "Inbox", "--window-index", "2", "--to", "4", "--follow" ]) let values = invocation.parsedValues #expect(values.options["app"] == ["Safari"]) #expect(values.options["windowTitle"] == ["Inbox"]) #expect(values.options["windowIndex"] == ["2"]) #expect(values.options["to"] == ["4"]) #expect(values.flags.contains("follow")) } @Test("Commander program resolves dialog click options") @MainActor func commanderResolvesDialogClick() throws { let descriptors = CommanderRegistryBuilder.buildDescriptors() let program = Program(descriptors: descriptors.map(\.metadata)) let invocation = try program.resolve(argv: [ "peekaboo", "dialog", "click", "--button", "OK", "--window", "Save" ]) let values = invocation.parsedValues #expect(values.options["button"] == ["OK"]) #expect(values.options["window"] == ["Save"]) } @Test("Commander program resolves dialog input options") @MainActor func commanderResolvesDialogInput() throws { let descriptors = CommanderRegistryBuilder.buildDescriptors() let program = Program(descriptors: descriptors.map(\.metadata)) let invocation = try program.resolve(argv: [ "peekaboo", "dialog", "input", "--text", "Report generated", "--window", "Export" ]) let values = invocation.parsedValues #expect(values.options["text"] == ["Report generated"]) #expect(values.options["window"] == ["Export"]) } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/steipete/Peekaboo'

If you have feedback or need assistance with the MCP directory API, please join our Discord server