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
}