Test Suites

1 passed, 1 total

Tests

74 passed, 74 total

Snapshots

0 passed, 0 total

{ "resultDir": "/home/runner/work/gs-squad-mcp/gs-squad-mcp/test-results/gs-squad-mcp/e2e/", "reportTitle": "gs-squad-mcp E2E Test Results", "reportHeadline": "gs-squad-mcp E2E Test Results", "additionalResultsProcessors": [], "coverageLink": "./coverage/index.html", "resultHtml": "index.html", "resultJson": "jest-results.json" }
{ "numFailedTestSuites": 0, "numFailedTests": 0, "numPassedTestSuites": 1, "numPassedTests": 74, "numPendingTestSuites": 0, "numPendingTests": 0, "numRuntimeErrorTestSuites": 0, "numTodoTests": 0, "numTotalTestSuites": 1, "numTotalTests": 74, "openHandles": [], "snapshot": { "added": 0, "didUpdate": false, "failure": false, "filesAdded": 0, "filesRemoved": 0, "filesRemovedList": [], "filesUnmatched": 0, "filesUpdated": 0, "matched": 0, "total": 0, "unchecked": 0, "uncheckedKeysByFile": [], "unmatched": 0, "updated": 0 }, "startTime": 1771062833856, "success": false, "testResults": [ { "leaks": false, "numFailingTests": 0, "numPassingTests": 74, "numPendingTests": 0, "numTodoTests": 0, "openHandles": [], "perfStats": { "end": 1771062842563, "loadTestEnvironmentEnd": 1771062833922, "loadTestEnvironmentStart": 1771062833884, "runtime": 8638, "setupAfterEnvEnd": 1771062835751, "setupAfterEnvStart": 1771062834049, "setupFilesEnd": 1771062833925, "setupFilesStart": 1771062833925, "slow": true, "start": 1771062833925 }, "skipped": false, "snapshot": { "added": 0, "fileDeleted": false, "matched": 0, "unchecked": 0, "uncheckedKeys": [], "unmatched": 0, "updated": 0 }, "testFilePath": "/home/runner/work/gs-squad-mcp/gs-squad-mcp/test/e2e/squad-mcp.e2e-spec.ts", "testResults": [ { "ancestorTitles": [ "Squad MCP E2E" ], "duration": 57, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E should create testing module and call SquadService directly", "invocations": 1, "location": null, "numPassingAsserts": 3, "retryReasons": [], "startAt": 1771062838936, "status": "passed", "title": "should create testing module and call SquadService directly" }, { "ancestorTitles": [ "Squad MCP E2E" ], "duration": 20, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E listRoles returns something non-empty", "invocations": 1, "location": null, "numPassingAsserts": 7, "retryReasons": [], "startAt": 1771062838994, "status": "passed", "title": "listRoles returns something non-empty" }, { "ancestorTitles": [ "Squad MCP E2E" ], "duration": 41, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E stateless call spawns fake engine and returns output", "invocations": 1, "location": null, "numPassingAsserts": 7, "retryReasons": [], "startAt": 1771062839014, "status": "passed", "title": "stateless call spawns fake engine and returns output" }, { "ancestorTitles": [ "Squad MCP E2E" ], "duration": 341, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E stateless sequential execution honors configured delay between members", "invocations": 1, "location": null, "numPassingAsserts": 4, "retryReasons": [], "startAt": 1771062839056, "status": "passed", "title": "stateless sequential execution honors configured delay between members" }, { "ancestorTitles": [ "Squad MCP E2E" ], "duration": 356, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E stateless members run in parallel by default", "invocations": 1, "location": null, "numPassingAsserts": 5, "retryReasons": [], "startAt": 1771062839397, "status": "passed", "title": "stateless members run in parallel by default" }, { "ancestorTitles": [ "Squad MCP E2E" ], "duration": 478, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E env override forces serialization regardless of configured execution mode", "invocations": 1, "location": null, "numPassingAsserts": 4, "retryReasons": [], "startAt": 1771062839754, "status": "passed", "title": "env override forces serialization regardless of configured execution mode" }, { "ancestorTitles": [ "Squad MCP E2E" ], "duration": 21, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E resolves relative cwd paths under the workspace root", "invocations": 1, "location": null, "numPassingAsserts": 3, "retryReasons": [], "startAt": 1771062840232, "status": "passed", "title": "resolves relative cwd paths under the workspace root" }, { "ancestorTitles": [ "Squad MCP E2E" ], "duration": 46, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E validates missing roles before stateless execution", "invocations": 1, "location": null, "numPassingAsserts": 1, "retryReasons": [], "startAt": 1771062840253, "status": "passed", "title": "validates missing roles before stateless execution" }, { "ancestorTitles": [ "Squad MCP E2E" ], "duration": 49, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E escapes prompts with special characters before templating", "invocations": 1, "location": null, "numPassingAsserts": 6, "retryReasons": [], "startAt": 1771062840300, "status": "passed", "title": "escapes prompts with special characters before templating" }, { "ancestorTitles": [ "Squad MCP E2E" ], "duration": 12, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E surfacing run template render errors for stateless members", "invocations": 1, "location": null, "numPassingAsserts": 1, "retryReasons": [], "startAt": 1771062840350, "status": "passed", "title": "surfacing run template render errors for stateless members" }, { "ancestorTitles": [ "Squad MCP E2E" ], "duration": 11, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E throws when the run template renders an empty command", "invocations": 1, "location": null, "numPassingAsserts": 1, "retryReasons": [], "startAt": 1771062840362, "status": "passed", "title": "throws when the run template renders an empty command" }, { "ancestorTitles": [ "Squad MCP E2E" ], "duration": 225, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E marks member as timeout when process exceeds configured limit", "invocations": 1, "location": null, "numPassingAsserts": 1, "retryReasons": [], "startAt": 1771062840374, "status": "passed", "title": "marks member as timeout when process exceeds configured limit" }, { "ancestorTitles": [ "Squad MCP E2E" ], "duration": 45, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E captures stderr when the run command exits with non-zero code", "invocations": 1, "location": null, "numPassingAsserts": 2, "retryReasons": [], "startAt": 1771062840600, "status": "passed", "title": "captures stderr when the run command exits with non-zero code" }, { "ancestorTitles": [ "Squad MCP E2E", "ProcessRunnerService behaviors" ], "duration": 44, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E ProcessRunnerService behaviors executes commands with explicit arguments", "invocations": 1, "location": null, "numPassingAsserts": 3, "retryReasons": [], "startAt": 1771062840645, "status": "passed", "title": "executes commands with explicit arguments" }, { "ancestorTitles": [ "Squad MCP E2E", "ProcessRunnerService behaviors" ], "duration": 21, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E ProcessRunnerService behaviors logs debug output when PROCESS_RUNNER_DEBUG is enabled", "invocations": 1, "location": null, "numPassingAsserts": 3, "retryReasons": [], "startAt": 1771062840689, "status": "passed", "title": "logs debug output when PROCESS_RUNNER_DEBUG is enabled" }, { "ancestorTitles": [ "Squad MCP E2E", "ProcessRunnerService behaviors" ], "duration": 43, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E ProcessRunnerService behaviors collects stdout and stderr output separately", "invocations": 1, "location": null, "numPassingAsserts": 3, "retryReasons": [], "startAt": 1771062840710, "status": "passed", "title": "collects stdout and stderr output separately" }, { "ancestorTitles": [ "Squad MCP E2E", "ProcessRunnerService behaviors" ], "duration": 126, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E ProcessRunnerService behaviors terminates commands that exceed the configured timeout", "invocations": 1, "location": null, "numPassingAsserts": 3, "retryReasons": [], "startAt": 1771062840753, "status": "passed", "title": "terminates commands that exceed the configured timeout" }, { "ancestorTitles": [ "Squad MCP E2E", "ProcessRunnerService behaviors" ], "duration": 23, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E ProcessRunnerService behaviors handles child process error events as member errors", "invocations": 1, "location": null, "numPassingAsserts": 3, "retryReasons": [], "startAt": 1771062840879, "status": "passed", "title": "handles child process error events as member errors" }, { "ancestorTitles": [ "Squad MCP E2E", "ProcessRunnerService behaviors" ], "duration": 43, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E ProcessRunnerService behaviors reports non-zero exit codes even when stdout is present", "invocations": 1, "location": null, "numPassingAsserts": 2, "retryReasons": [], "startAt": 1771062840902, "status": "passed", "title": "reports non-zero exit codes even when stdout is present" }, { "ancestorTitles": [ "Squad MCP E2E", "ProcessRunnerService behaviors" ], "duration": 43, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E ProcessRunnerService behaviors closes stdin so commands waiting for EOF can complete", "invocations": 1, "location": null, "numPassingAsserts": 3, "retryReasons": [], "startAt": 1771062840946, "status": "passed", "title": "closes stdin so commands waiting for EOF can complete" }, { "ancestorTitles": [ "Squad MCP E2E", "ProcessRunnerService behaviors" ], "duration": 43, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E ProcessRunnerService behaviors captures large stdout output without truncation", "invocations": 1, "location": null, "numPassingAsserts": 3, "retryReasons": [], "startAt": 1771062840989, "status": "passed", "title": "captures large stdout output without truncation" }, { "ancestorTitles": [ "Squad MCP E2E" ], "duration": 46, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E stateful call creates and reuses chatId", "invocations": 1, "location": null, "numPassingAsserts": 3, "retryReasons": [], "startAt": 1771062841032, "status": "passed", "title": "stateful call creates and reuses chatId" }, { "ancestorTitles": [ "Squad MCP E2E", "SquadService stateful execution edge cases" ], "duration": 33, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E SquadService stateful execution edge cases stateful member creates chat with UUID substitution", "invocations": 1, "location": null, "numPassingAsserts": 2, "retryReasons": [], "startAt": 1771062841078, "status": "passed", "title": "stateful member creates chat with UUID substitution" }, { "ancestorTitles": [ "Squad MCP E2E", "SquadService stateful execution edge cases" ], "duration": 16, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E SquadService stateful execution edge cases stateful create-chat render failure surfaces template error", "invocations": 1, "location": null, "numPassingAsserts": 1, "retryReasons": [], "startAt": 1771062841111, "status": "passed", "title": "stateful create-chat render failure surfaces template error" }, { "ancestorTitles": [ "Squad MCP E2E", "SquadService stateful execution edge cases" ], "duration": 45, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E SquadService stateful execution edge cases stateful create-chat empty output rejects cleanly", "invocations": 1, "location": null, "numPassingAsserts": 1, "retryReasons": [], "startAt": 1771062841128, "status": "passed", "title": "stateful create-chat empty output rejects cleanly" }, { "ancestorTitles": [ "Squad MCP E2E", "SquadService stateful execution edge cases" ], "duration": 52, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E SquadService stateful execution edge cases stateful create-chat process failure propagates stderr", "invocations": 1, "location": null, "numPassingAsserts": 1, "retryReasons": [], "startAt": 1771062841173, "status": "passed", "title": "stateful create-chat process failure propagates stderr" }, { "ancestorTitles": [ "Squad MCP E2E", "SquadService stateful execution edge cases" ], "duration": 57, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E SquadService stateful execution edge cases stateful create-chat handles stdout without newline terminators", "invocations": 1, "location": null, "numPassingAsserts": 2, "retryReasons": [], "startAt": 1771062841225, "status": "passed", "title": "stateful create-chat handles stdout without newline terminators" }, { "ancestorTitles": [ "Squad MCP E2E", "SquadService stateful execution edge cases" ], "duration": 25, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E SquadService stateful execution edge cases stateful existing chat skips create-chat execution", "invocations": 1, "location": null, "numPassingAsserts": 2, "retryReasons": [], "startAt": 1771062841282, "status": "passed", "title": "stateful existing chat skips create-chat execution" }, { "ancestorTitles": [ "Squad MCP E2E", "SquadService stateful execution edge cases" ], "duration": 27, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E SquadService stateful execution edge cases stateful run template error bubbles descriptive message", "invocations": 1, "location": null, "numPassingAsserts": 1, "retryReasons": [], "startAt": 1771062841307, "status": "passed", "title": "stateful run template error bubbles descriptive message" }, { "ancestorTitles": [ "Squad MCP E2E", "SquadService stateful execution edge cases" ], "duration": 24, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E SquadService stateful execution edge cases stateful run template empty output rejects early", "invocations": 1, "location": null, "numPassingAsserts": 1, "retryReasons": [], "startAt": 1771062841335, "status": "passed", "title": "stateful run template empty output rejects early" }, { "ancestorTitles": [ "Squad MCP E2E", "SquadService stateful execution edge cases" ], "duration": 346, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E SquadService stateful execution edge cases stateful sequential execution honors configured delay", "invocations": 1, "location": null, "numPassingAsserts": 3, "retryReasons": [], "startAt": 1771062841360, "status": "passed", "title": "stateful sequential execution honors configured delay" }, { "ancestorTitles": [ "Squad MCP E2E", "SquadService stateful execution edge cases" ], "duration": 19, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E SquadService stateful execution edge cases stateful process runner errors bubble to caller", "invocations": 1, "location": null, "numPassingAsserts": 1, "retryReasons": [], "startAt": 1771062841707, "status": "passed", "title": "stateful process runner errors bubble to caller" }, { "ancestorTitles": [ "Squad MCP E2E", "SquadService stateless execution" ], "duration": 39, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E SquadService stateless execution should execute members sequentially when EXECUTION_MODE is sequential", "invocations": 1, "location": null, "numPassingAsserts": 3, "retryReasons": [], "startAt": 1771062841726, "status": "passed", "title": "should execute members sequentially when EXECUTION_MODE is sequential" }, { "ancestorTitles": [ "Squad MCP E2E", "SquadService stateless execution" ], "duration": 31, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E SquadService stateless execution should execute members in parallel by default", "invocations": 1, "location": null, "numPassingAsserts": 3, "retryReasons": [], "startAt": 1771062841765, "status": "passed", "title": "should execute members in parallel by default" }, { "ancestorTitles": [ "Squad MCP E2E", "SquadService stateless execution" ], "duration": 31, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E SquadService stateless execution should force serialization when PROCESS_RUNNER_SERIALIZE is true", "invocations": 1, "location": null, "numPassingAsserts": 1, "retryReasons": [], "startAt": 1771062841796, "status": "passed", "title": "should force serialization when PROCESS_RUNNER_SERIALIZE is true" }, { "ancestorTitles": [ "Squad MCP E2E", "SquadService stateless execution" ], "duration": 22, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E SquadService stateless execution should resolve relative cwd correctly", "invocations": 1, "location": null, "numPassingAsserts": 1, "retryReasons": [], "startAt": 1771062841827, "status": "passed", "title": "should resolve relative cwd correctly" }, { "ancestorTitles": [ "Squad MCP E2E", "SquadService stateless execution" ], "duration": 10, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E SquadService stateless execution should throw error when role is not found", "invocations": 1, "location": null, "numPassingAsserts": 1, "retryReasons": [], "startAt": 1771062841849, "status": "passed", "title": "should throw error when role is not found" }, { "ancestorTitles": [ "Squad MCP E2E", "SquadService stateless execution" ], "duration": 17, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E SquadService stateless execution should escape special characters in prompt", "invocations": 1, "location": null, "numPassingAsserts": 2, "retryReasons": [], "startAt": 1771062841859, "status": "passed", "title": "should escape special characters in prompt" }, { "ancestorTitles": [ "Squad MCP E2E", "SquadService stateless execution" ], "duration": 11, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E SquadService stateless execution should throw error when template rendering fails", "invocations": 1, "location": null, "numPassingAsserts": 1, "retryReasons": [], "startAt": 1771062841876, "status": "passed", "title": "should throw error when template rendering fails" }, { "ancestorTitles": [ "Squad MCP E2E", "SquadService stateless execution" ], "duration": 11, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E SquadService stateless execution should throw error when template renders to empty string", "invocations": 1, "location": null, "numPassingAsserts": 1, "retryReasons": [], "startAt": 1771062841887, "status": "passed", "title": "should throw error when template renders to empty string" }, { "ancestorTitles": [ "Squad MCP E2E", "SquadService stateless execution" ], "duration": 126, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E SquadService stateless execution should handle process timeout correctly", "invocations": 1, "location": null, "numPassingAsserts": 1, "retryReasons": [], "startAt": 1771062841898, "status": "passed", "title": "should handle process timeout correctly" }, { "ancestorTitles": [ "Squad MCP E2E", "SquadService stateless execution" ], "duration": 18, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E SquadService stateless execution should handle non-zero exit code correctly", "invocations": 1, "location": null, "numPassingAsserts": 1, "retryReasons": [], "startAt": 1771062842025, "status": "passed", "title": "should handle non-zero exit code correctly" }, { "ancestorTitles": [ "Squad MCP E2E", "SquadService stateful execution" ], "duration": 30, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E SquadService stateful execution should create chat with UUID substitution", "invocations": 1, "location": null, "numPassingAsserts": 2, "retryReasons": [], "startAt": 1771062842043, "status": "passed", "title": "should create chat with UUID substitution" }, { "ancestorTitles": [ "Squad MCP E2E", "SquadService stateful execution" ], "duration": 16, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E SquadService stateful execution should throw error when create-chat template rendering fails", "invocations": 1, "location": null, "numPassingAsserts": 1, "retryReasons": [], "startAt": 1771062842073, "status": "passed", "title": "should throw error when create-chat template rendering fails" }, { "ancestorTitles": [ "Squad MCP E2E", "SquadService stateful execution" ], "duration": 20, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E SquadService stateful execution should throw error when create-chat renders to empty string", "invocations": 1, "location": null, "numPassingAsserts": 1, "retryReasons": [], "startAt": 1771062842089, "status": "passed", "title": "should throw error when create-chat renders to empty string" }, { "ancestorTitles": [ "Squad MCP E2E", "SquadService stateful execution" ], "duration": 22, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E SquadService stateful execution should throw error when create-chat process fails", "invocations": 1, "location": null, "numPassingAsserts": 1, "retryReasons": [], "startAt": 1771062842109, "status": "passed", "title": "should throw error when create-chat process fails" }, { "ancestorTitles": [ "Squad MCP E2E", "SquadService stateful execution" ], "duration": 28, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E SquadService stateful execution should handle create-chat output without newline", "invocations": 1, "location": null, "numPassingAsserts": 1, "retryReasons": [], "startAt": 1771062842131, "status": "passed", "title": "should handle create-chat output without newline" }, { "ancestorTitles": [ "Squad MCP E2E", "SquadService stateful execution" ], "duration": 22, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E SquadService stateful execution should skip chat creation when chatId is provided", "invocations": 1, "location": null, "numPassingAsserts": 1, "retryReasons": [], "startAt": 1771062842160, "status": "passed", "title": "should skip chat creation when chatId is provided" }, { "ancestorTitles": [ "Squad MCP E2E", "SquadService stateful execution" ], "duration": 25, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E SquadService stateful execution should throw error when stateful run template rendering fails", "invocations": 1, "location": null, "numPassingAsserts": 1, "retryReasons": [], "startAt": 1771062842182, "status": "passed", "title": "should throw error when stateful run template rendering fails" }, { "ancestorTitles": [ "Squad MCP E2E", "SquadService stateful execution" ], "duration": 22, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E SquadService stateful execution should throw error when stateful run template renders to empty", "invocations": 1, "location": null, "numPassingAsserts": 1, "retryReasons": [], "startAt": 1771062842207, "status": "passed", "title": "should throw error when stateful run template renders to empty" }, { "ancestorTitles": [ "Squad MCP E2E", "SquadService stateful execution" ], "duration": 49, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E SquadService stateful execution should execute stateful members sequentially with delay", "invocations": 1, "location": null, "numPassingAsserts": 3, "retryReasons": [], "startAt": 1771062842230, "status": "passed", "title": "should execute stateful members sequentially with delay" }, { "ancestorTitles": [ "Squad MCP E2E", "ProcessRunnerService edge cases" ], "duration": 17, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E ProcessRunnerService edge cases should handle commands with arguments", "invocations": 1, "location": null, "numPassingAsserts": 1, "retryReasons": [], "startAt": 1771062842279, "status": "passed", "title": "should handle commands with arguments" }, { "ancestorTitles": [ "Squad MCP E2E", "ProcessRunnerService edge cases" ], "duration": 20, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E ProcessRunnerService edge cases should collect both stdout and stderr", "invocations": 1, "location": null, "numPassingAsserts": 2, "retryReasons": [], "startAt": 1771062842296, "status": "passed", "title": "should collect both stdout and stderr" }, { "ancestorTitles": [ "Squad MCP E2E", "ProcessRunnerService edge cases" ], "duration": 18, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E ProcessRunnerService edge cases should handle process errors gracefully", "invocations": 1, "location": null, "numPassingAsserts": 1, "retryReasons": [], "startAt": 1771062842316, "status": "passed", "title": "should handle process errors gracefully" }, { "ancestorTitles": [ "Squad MCP E2E", "ProcessRunnerService edge cases" ], "duration": 20, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E ProcessRunnerService edge cases should handle large output", "invocations": 1, "location": null, "numPassingAsserts": 2, "retryReasons": [], "startAt": 1771062842334, "status": "passed", "title": "should handle large output" }, { "ancestorTitles": [ "Squad MCP E2E", "TemplateRendererService edge cases" ], "duration": 9, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E TemplateRendererService edge cases splits args for a basic rendered template", "invocations": 1, "location": null, "numPassingAsserts": 1, "retryReasons": [], "startAt": 1771062842354, "status": "passed", "title": "splits args for a basic rendered template" }, { "ancestorTitles": [ "Squad MCP E2E", "TemplateRendererService edge cases" ], "duration": 8, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E TemplateRendererService edge cases preserves quoted argument content", "invocations": 1, "location": null, "numPassingAsserts": 1, "retryReasons": [], "startAt": 1771062842363, "status": "passed", "title": "preserves quoted argument content" }, { "ancestorTitles": [ "Squad MCP E2E", "TemplateRendererService edge cases" ], "duration": 8, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E TemplateRendererService edge cases handles single quotes and nested quoting", "invocations": 1, "location": null, "numPassingAsserts": 1, "retryReasons": [], "startAt": 1771062842372, "status": "passed", "title": "handles single quotes and nested quoting" }, { "ancestorTitles": [ "Squad MCP E2E", "TemplateRendererService edge cases" ], "duration": 8, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E TemplateRendererService edge cases trims trailing whitespace from the template output", "invocations": 1, "location": null, "numPassingAsserts": 1, "retryReasons": [], "startAt": 1771062842381, "status": "passed", "title": "trims trailing whitespace from the template output" }, { "ancestorTitles": [ "Squad MCP E2E", "TemplateRendererService edge cases" ], "duration": 10, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E TemplateRendererService edge cases removes empty args produced by template gaps", "invocations": 1, "location": null, "numPassingAsserts": 2, "retryReasons": [], "startAt": 1771062842389, "status": "passed", "title": "removes empty args produced by template gaps" }, { "ancestorTitles": [ "Squad MCP E2E", "TemplateRendererService edge cases" ], "duration": 7, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E TemplateRendererService edge cases surfaces template failures with a helpful snippet", "invocations": 1, "location": null, "numPassingAsserts": 3, "retryReasons": [], "startAt": 1771062842399, "status": "passed", "title": "surfaces template failures with a helpful snippet" }, { "ancestorTitles": [ "Squad MCP E2E", "TemplateRendererService edge cases" ], "duration": 8, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E TemplateRendererService edge cases injects stateful context like chatId when present", "invocations": 1, "location": null, "numPassingAsserts": 1, "retryReasons": [], "startAt": 1771062842407, "status": "passed", "title": "injects stateful context like chatId when present" }, { "ancestorTitles": [ "Squad MCP E2E", "TemplateRendererService edge cases" ], "duration": 8, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E TemplateRendererService edge cases splits unicode and newline sequences correctly", "invocations": 1, "location": null, "numPassingAsserts": 2, "retryReasons": [], "startAt": 1771062842415, "status": "passed", "title": "splits unicode and newline sequences correctly" }, { "ancestorTitles": [ "Squad MCP E2E", "MCP CLI stdio integration" ], "duration": 8, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E MCP CLI stdio integration performs initialize handshake over stdio", "invocations": 1, "location": null, "numPassingAsserts": 3, "retryReasons": [], "startAt": 1771062842423, "status": "passed", "title": "performs initialize handshake over stdio" }, { "ancestorTitles": [ "Squad MCP E2E", "MCP CLI stdio integration" ], "duration": 9, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E MCP CLI stdio integration responds with available tools for tools/list requests", "invocations": 1, "location": null, "numPassingAsserts": 2, "retryReasons": [], "startAt": 1771062842431, "status": "passed", "title": "responds with available tools for tools/list requests" }, { "ancestorTitles": [ "Squad MCP E2E", "MCP CLI stdio integration" ], "duration": 8, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E MCP CLI stdio integration serializes list_roles results via tools/call", "invocations": 1, "location": null, "numPassingAsserts": 3, "retryReasons": [], "startAt": 1771062842440, "status": "passed", "title": "serializes list_roles results via tools/call" }, { "ancestorTitles": [ "Squad MCP E2E", "MCP CLI stdio integration" ], "duration": 19, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E MCP CLI stdio integration executes start_squad_members via tools/call in stateless mode", "invocations": 1, "location": null, "numPassingAsserts": 3, "retryReasons": [], "startAt": 1771062842448, "status": "passed", "title": "executes start_squad_members via tools/call in stateless mode" }, { "ancestorTitles": [ "Squad MCP E2E", "MCP CLI stdio integration" ], "duration": 29, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E MCP CLI stdio integration executes start_squad_members via tools/call in stateful mode", "invocations": 1, "location": null, "numPassingAsserts": 3, "retryReasons": [], "startAt": 1771062842467, "status": "passed", "title": "executes start_squad_members via tools/call in stateful mode" }, { "ancestorTitles": [ "Squad MCP E2E", "MCP CLI stdio integration" ], "duration": 17, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E MCP CLI stdio integration supports direct start_squad_members method invocation", "invocations": 1, "location": null, "numPassingAsserts": 2, "retryReasons": [], "startAt": 1771062842496, "status": "passed", "title": "supports direct start_squad_members method invocation" }, { "ancestorTitles": [ "Squad MCP E2E", "MCP CLI stdio integration" ], "duration": 10, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E MCP CLI stdio integration returns errors for unknown tools and methods", "invocations": 1, "location": null, "numPassingAsserts": 4, "retryReasons": [], "startAt": 1771062842513, "status": "passed", "title": "returns errors for unknown tools and methods" }, { "ancestorTitles": [ "Squad MCP E2E", "MCP CLI stdio integration" ], "duration": 8, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E MCP CLI stdio integration propagates parse errors and preserves request id", "invocations": 1, "location": null, "numPassingAsserts": 3, "retryReasons": [], "startAt": 1771062842523, "status": "passed", "title": "propagates parse errors and preserves request id" }, { "ancestorTitles": [ "Squad MCP E2E", "MCP CLI stdio integration" ], "duration": 10, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E MCP CLI stdio integration ignores notifications that omit an id", "invocations": 1, "location": null, "numPassingAsserts": 1, "retryReasons": [], "startAt": 1771062842531, "status": "passed", "title": "ignores notifications that omit an id" }, { "ancestorTitles": [ "Squad MCP E2E", "MCP CLI stdio integration" ], "duration": 12, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E MCP CLI stdio integration surfaces internal errors from SquadService executions", "invocations": 1, "location": null, "numPassingAsserts": 2, "retryReasons": [], "startAt": 1771062842541, "status": "passed", "title": "surfaces internal errors from SquadService executions" }, { "ancestorTitles": [ "Squad MCP E2E", "MCP CLI stdio integration" ], "duration": 8, "failing": false, "failureDetails": [], "failureMessages": [], "fullName": "Squad MCP E2E MCP CLI stdio integration exits gracefully when readline closes", "invocations": 1, "location": null, "numPassingAsserts": 1, "retryReasons": [], "startAt": 1771062842553, "status": "passed", "title": "exits gracefully when readline closes" } ], "displayName": { "color": "white", "name": "e2e" }, "failureMessage": null } ], "wasInterrupted": false }
{ "bail": 0, "changedFilesWithAncestor": false, "ci": true, "collectCoverage": true, "collectCoverageFrom": [ "src/**/*.ts", "!src/**/*.d.ts", "!src/**/*.spec.ts", "!src/**/*.test.ts", "!src/**/*.module.ts" ], "coverageDirectory": "/home/runner/work/gs-squad-mcp/gs-squad-mcp/test-results/gs-squad-mcp/e2e/coverage", "coverageProvider": "babel", "coverageReporters": [ "json", "text", "lcov", "clover", "json-summary", "html" ], "detectLeaks": false, "detectOpenHandles": false, "errorOnDeprecated": false, "expand": false, "findRelatedTests": false, "forceExit": true, "json": false, "lastCommit": false, "listTests": false, "logHeapUsage": false, "maxConcurrency": 5, "maxWorkers": 1, "noStackTrace": false, "nonFlagArgs": [], "notify": false, "notifyMode": "failure-change", "onlyChanged": false, "onlyFailures": false, "openHandlesTimeout": 1000, "passWithNoTests": true, "projects": [], "reporters": [ [ "default", {} ], [ "/home/runner/work/gs-squad-mcp/gs-squad-mcp/node_modules/jest-stare/lib/index.js", { "resultDir": "/home/runner/work/gs-squad-mcp/gs-squad-mcp/test-results/gs-squad-mcp/e2e/", "reportTitle": "gs-squad-mcp E2E Test Results", "reportHeadline": "gs-squad-mcp E2E Test Results", "additionalResultsProcessors": [], "coverageLink": "./coverage/index.html", "resultHtml": "index.html", "resultJson": "jest-results.json" } ] ], "rootDir": "/home/runner/work/gs-squad-mcp/gs-squad-mcp", "runInBand": true, "runTestsByPath": false, "seed": 439438641, "skipFilter": false, "snapshotFormat": { "escapeString": false, "printBasicPrototype": false }, "testFailureExitCode": 1, "testPathPatterns": { "patterns": [], "type": "TestPathPatterns" }, "testSequencer": "/home/runner/work/gs-squad-mcp/gs-squad-mcp/node_modules/@jest/test-sequencer/build/index.js", "updateSnapshot": "none", "useStderr": false, "verbose": true, "waitForUnhandledRejections": false, "watch": false, "watchAll": false, "watchman": true, "workerThreads": false }