Skip to main content
Glama

Peekaboo MCP

by steipete
AgentResumeTests.swiftβ€’6.06 kB
import Foundation import Testing @testable import peekaboo @testable import PeekabooCore @Suite("Agent Resume Functionality Tests") struct AgentResumeTests { // MARK: - AgentSessionManager Tests // TODO: The SessionManager API has changed. These tests need to be rewritten. /* @available(macOS 14.0, *) @Test("AgentSessionManager creates session correctly") func sessionManagerCreatesSession() async { let manager = SessionManager() let task = "Test task" let session = try! await manager.createSession(task: task) #expect(!session.id.isEmpty) let retrievedSession = try! await manager.getSession(id: session.id) #expect(retrievedSession != nil) #expect(retrievedSession?.summary == task) #expect(retrievedSession?.messages.isEmpty == true) // Clean up await manager.deleteSession(id: session.id) } @available(macOS 14.0, *) @Test("AgentSessionManager adds steps correctly") func sessionManagerAddsSteps() async { let manager = SessionManager() let session = try! await manager.createSession(task: "Test task") await manager.addMessageToSession( sessionId: session.id, message: .init(role: .user, content: "Test step") ) let updatedSession = try! await manager.getSession(id: session.id) #expect(updatedSession?.messages.count == 1) #expect(updatedSession?.messages.first?.content.first?.text == "Test step") // Clean up await manager.deleteSession(id: session.id) } @available(macOS 14.0, *) @Test("AgentSessionManager retrieves recent sessions") func sessionManagerRetrievesRecentSessions() async { let manager = SessionManager() // Create multiple sessions let session1 = try! await manager.createSession(task: "Task 1") let session2 = try! await manager.createSession(task: "Task 2") let session3 = try! await manager.createSession(task: "Task 3") // Add some steps to make them different await manager.addMessageToSession(sessionId: session1.id, message: .init(role: .user, content: "Step 1")) await manager.addMessageToSession(sessionId: session2.id, message: .init(role: .user, content: "Step 1")) await manager.addMessageToSession(sessionId: session2.id, message: .init(role: .user, content: "Step 2")) let recentSessions = try! await manager.listSessions() #expect(recentSessions.count >= 3) // Sessions should be ordered by last activity (most recent first) let sessionIds = recentSessions.map(\.id) #expect(sessionIds.contains(session1.id)) #expect(sessionIds.contains(session2.id)) #expect(sessionIds.contains(session3.id)) // Clean up await manager.deleteSession(id: session1.id) await manager.deleteSession(id: session2.id) await manager.deleteSession(id: session3.id) } @available(macOS 14.0, *) @Test("AgentSessionManager handles nonexistent sessions") func sessionManagerHandlesNonexistentSessions() async { let manager = SessionManager() let nonexistentId = "nonexistent-session-id" let session = try! await manager.getSession(id: nonexistentId) #expect(session == nil) } // MARK: - Session Persistence Tests @available(macOS 14.0, *) @Test("AgentSessionManager persists sessions to disk") func sessionManagerPersistsSessions() async { let manager = SessionManager() let session = try! await manager.createSession(task: "Persistent task") await manager.addMessageToSession( sessionId: session.id, message: .init(role: .user, content: "Persistent step") ) // Create a new manager instance to test persistence let newManager = SessionManager() // Give it a moment to load sessions try! await Task.sleep(nanoseconds: 100_000_000) // 0.1 seconds let retrievedSession = try! await newManager.getSession(id: session.id) #expect(retrievedSession != nil) #expect(retrievedSession?.summary == "Persistent task") #expect(retrievedSession?.messages.count == 1) // Clean up await manager.deleteSession(id: session.id) } // MARK: - AgentCommand Resume Logic Tests @available(macOS 14.0, *) @Test("AgentCommand shows recent sessions with empty resume") func agentCommandShowsRecentSessions() async throws { // Create a test session first let manager = SessionManager() let session = try! await manager.createSession(task: "Test session task") await manager.addMessageToSession(sessionId: session.id, message: .init(role: .user, content: "Test step")) // Test showing recent sessions (we can't easily test the actual command execution, // but we can test the data retrieval) let recentSessions = try! await manager.listSessions() #expect(recentSessions.count >= 1) let testSession = recentSessions.first { $0.id == session.id } #expect(testSession != nil) #expect(testSession?.summary == "Test session task") #expect(testSession?.messageCount == 1) // Clean up await manager.deleteSession(id: session.id) } @available(macOS 14.0, *) @Test("AgentCommand validates session resumption") func agentCommandValidatesSessionResumption() async { let manager = SessionManager() // Test with nonexistent session let nonexistentSession = try! await manager.getSession(id: "nonexistent-session") #expect(nonexistentSession == nil) // Test with valid session let session = try! await manager.createSession(task: "Valid session") let validSession = try! await manager.getSession(id: session.id) #expect(validSession != nil) #expect(validSession?.id == session.id) // Clean up await manager.deleteSession(id: session.id) } */ }

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