Skip to main content
Glama
MCPArgumentParsingTests.swift1.53 kB
// // MCPArgumentParsingTests.swift // PeekabooCLITests // import Foundation import Testing @testable import PeekabooCLI @Suite("MCP argument parsing", .tags(.safe)) struct MCPArgumentParsingTests { @Test func parseJSONObjectObject() throws { let result = try MCPArgumentParsing.parseJSONObject(#"{"foo": "bar", "count": 2}"#) #expect(result["foo"] as? String == "bar") #expect(result["count"] as? Int == 2) } @Test func parseJSONObjectNullReturnsEmpty() throws { let result = try MCPArgumentParsing.parseJSONObject("null") #expect(result.isEmpty) } @Test func parseJSONObjectInvalidTypeThrows() { let error = #expect(throws: MCPCommandError.self) { try MCPArgumentParsing.parseJSONObject(#"["not","object"]"#) } if case .invalidArguments = error { return } Issue.record("Expected invalidArguments, got \(error)") } @Test func parseKeyValueListParses() throws { let result = try MCPArgumentParsing.parseKeyValueList(["A=1", "B=two"], label: "env") #expect(result["A"] == "1") #expect(result["B"] == "two") } @Test func parseKeyValueListRejectsInvalid() { let error = #expect(throws: MCPCommandError.self) { _ = try MCPArgumentParsing.parseKeyValueList(["BADPAIR"], label: "env") } if case .invalidArguments = error { return } Issue.record("Expected invalidArguments, got \(error)") } }

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