Skip to main content
Glama
jest-junit.xml110 kB
<?xml version="1.0" encoding="UTF-8"?> <testsuites name="jest tests" tests="231" failures="52" errors="0" time="2.375"> <testsuite name="WebSocketManager" errors="0" failures="11" skipped="0" timestamp="2025-09-28T03:00:04" time="0.437" tests="36"> <testcase classname="WebSocketManager initialization should initialize successfully" name="WebSocketManager initialization should initialize successfully" time="0.005"> </testcase> <testcase classname="WebSocketManager initialization should setup middleware in correct order" name="WebSocketManager initialization should setup middleware in correct order" time="0.001"> </testcase> <testcase classname="WebSocketManager initialization should setup connection event handler" name="WebSocketManager initialization should setup connection event handler" time="0"> </testcase> <testcase classname="WebSocketManager authentication middleware should authenticate valid socket connections" name="WebSocketManager authentication middleware should authenticate valid socket connections" time="0.002"> </testcase> <testcase classname="WebSocketManager authentication middleware should reject unauthenticated socket connections" name="WebSocketManager authentication middleware should reject unauthenticated socket connections" time="0.001"> </testcase> <testcase classname="WebSocketManager rate limiting middleware should allow connections within rate limit" name="WebSocketManager rate limiting middleware should allow connections within rate limit" time="0.001"> </testcase> <testcase classname="WebSocketManager rate limiting middleware should reject connections exceeding rate limit" name="WebSocketManager rate limiting middleware should reject connections exceeding rate limit" time="0"> </testcase> <testcase classname="WebSocketManager rate limiting middleware should handle Redis errors gracefully in rate limiting" name="WebSocketManager rate limiting middleware should handle Redis errors gracefully in rate limiting" time="0.001"> </testcase> <testcase classname="WebSocketManager connection handling should handle new socket connections" name="WebSocketManager connection handling should handle new socket connections" time="0.002"> </testcase> <testcase classname="WebSocketManager connection handling should send server capabilities on connection" name="WebSocketManager connection handling should send server capabilities on connection" time="0.002"> </testcase> <testcase classname="WebSocketManager connection handling should enforce connection limits" name="WebSocketManager connection handling should enforce connection limits" time="0.002"> <failure>Error: expect(jest.fn()).toHaveBeenCalledWith(...expected) Expected: &quot;Connection limit exceeded&quot;, ObjectContaining {&quot;current&quot;: 1001, &quot;max&quot;: 1000} Number of calls: 0 at Object.toHaveBeenCalledWith (/Users/scott/perfecxion/secure-mcp/tests/unit/server/websocket-manager.test.ts:298:31) at Promise.then.completed (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:298:28) at new Promise (&lt;anonymous&gt;) at callAsyncCircusFn (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:231:10) at _callCircusTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:316:40) at _runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:252:3) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:126:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at run (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:71:3) at runAndTransformResultsToJestFormat (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21) at jestAdapter (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19) at runTestInternal (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:367:16) at runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:444:34)</failure> </testcase> <testcase classname="WebSocketManager message handling should handle valid MCP initialize request" name="WebSocketManager message handling should handle valid MCP initialize request" time="0.001"> </testcase> <testcase classname="WebSocketManager message handling should handle tools/list request" name="WebSocketManager message handling should handle tools/list request" time="0"> </testcase> <testcase classname="WebSocketManager message handling should handle tools/call request" name="WebSocketManager message handling should handle tools/call request" time="0.001"> <failure>Error: expect(jest.fn()).toHaveBeenCalledWith(...expected) Expected: StringContaining &quot;\&quot;content\&quot;&quot; Received: &quot;{\&quot;jsonrpc\&quot;:\&quot;2.0\&quot;,\&quot;id\&quot;:3,\&quot;error\&quot;:{\&quot;code\&quot;:-32000,\&quot;message\&quot;:\&quot;Tool execution failed\&quot;}}&quot; Number of calls: 1 at Object.toHaveBeenCalledWith (/Users/scott/perfecxion/secure-mcp/tests/unit/server/websocket-manager.test.ts:365:31)</failure> </testcase> <testcase classname="WebSocketManager message handling should reject requests before initialization" name="WebSocketManager message handling should reject requests before initialization" time="0.001"> </testcase> <testcase classname="WebSocketManager message handling should reject oversized messages" name="WebSocketManager message handling should reject oversized messages" time="0.001"> </testcase> <testcase classname="WebSocketManager message handling should reject malformed JSON" name="WebSocketManager message handling should reject malformed JSON" time="0"> <failure>Error: expect(jest.fn()).toHaveBeenCalledWith(...expected) Expected: StringContaining &quot;Parse error&quot; Received 1: &quot;{\&quot;jsonrpc\&quot;:\&quot;2.0\&quot;,\&quot;method\&quot;:\&quot;notifications/initialized\&quot;,\&quot;params\&quot;:{\&quot;protocolVersion\&quot;:\&quot;2024-11-05\&quot;,\&quot;capabilities\&quot;:{\&quot;tools\&quot;:{\&quot;listChanged\&quot;:true},\&quot;resources\&quot;:{\&quot;listChanged\&quot;:true,\&quot;subscribe\&quot;:true},\&quot;logging\&quot;:{}},\&quot;serverInfo\&quot;:{\&quot;name\&quot;:\&quot;secure-mcp-server\&quot;,\&quot;version\&quot;:\&quot;1.0.0\&quot;}}}&quot; 2: &quot;{\&quot;jsonrpc\&quot;:\&quot;2.0\&quot;,\&quot;id\&quot;:null,\&quot;error\&quot;:{\&quot;code\&quot;:-32600,\&quot;message\&quot;:\&quot;Invalid JSON\&quot;}}&quot; Number of calls: 2 at Object.toHaveBeenCalledWith (/Users/scott/perfecxion/secure-mcp/tests/unit/server/websocket-manager.test.ts:404:31)</failure> </testcase> <testcase classname="WebSocketManager message handling should reject non-JSON-RPC messages" name="WebSocketManager message handling should reject non-JSON-RPC messages" time="0"> <failure>Error: expect(jest.fn()).toHaveBeenCalledWith(...expected) Expected: StringContaining &quot;\&quot;error\&quot;&quot; Received: &quot;{\&quot;jsonrpc\&quot;:\&quot;2.0\&quot;,\&quot;method\&quot;:\&quot;notifications/initialized\&quot;,\&quot;params\&quot;:{\&quot;protocolVersion\&quot;:\&quot;2024-11-05\&quot;,\&quot;capabilities\&quot;:{\&quot;tools\&quot;:{\&quot;listChanged\&quot;:true},\&quot;resources\&quot;:{\&quot;listChanged\&quot;:true,\&quot;subscribe\&quot;:true},\&quot;logging\&quot;:{}},\&quot;serverInfo\&quot;:{\&quot;name\&quot;:\&quot;secure-mcp-server\&quot;,\&quot;version\&quot;:\&quot;1.0.0\&quot;}}}&quot; Number of calls: 1 at Object.toHaveBeenCalledWith (/Users/scott/perfecxion/secure-mcp/tests/unit/server/websocket-manager.test.ts:414:31)</failure> </testcase> <testcase classname="WebSocketManager message handling should handle method not found" name="WebSocketManager message handling should handle method not found" time="0.001"> </testcase> <testcase classname="WebSocketManager message handling should sanitize input messages" name="WebSocketManager message handling should sanitize input messages" time="0.001"> <failure>Error: expect(jest.fn()).toHaveBeenCalledWith(...expected) Expected: &quot;{\&quot;jsonrpc\&quot;:\&quot;2.0\&quot;,\&quot;id\&quot;:1,\&quot;method\&quot;:\&quot;initialize\&quot;,\&quot;params\&quot;:{\&quot;malicious\&quot;:\&quot;&lt;script&gt;alert(\\\&quot;xss\\\&quot;)&lt;/script&gt;\&quot;}}&quot; Number of calls: 0 at Object.toHaveBeenCalledWith (/Users/scott/perfecxion/secure-mcp/tests/unit/server/websocket-manager.test.ts:457:48)</failure> </testcase> <testcase classname="WebSocketManager tool execution should execute echo tool successfully" name="WebSocketManager tool execution should execute echo tool successfully" time="0.001"> <failure>Error: expect(jest.fn()).toHaveBeenCalledWith(...expected) Expected: StringContaining &quot;Echo: Hello, World!&quot; Received: &quot;{\&quot;jsonrpc\&quot;:\&quot;2.0\&quot;,\&quot;id\&quot;:1,\&quot;error\&quot;:{\&quot;code\&quot;:-32000,\&quot;message\&quot;:\&quot;Tool execution failed\&quot;}}&quot; Number of calls: 1 at Object.toHaveBeenCalledWith (/Users/scott/perfecxion/secure-mcp/tests/unit/server/websocket-manager.test.ts:492:31)</failure> </testcase> <testcase classname="WebSocketManager tool execution should execute calculate tool successfully" name="WebSocketManager tool execution should execute calculate tool successfully" time="0.001"> <failure>Error: expect(jest.fn()).toHaveBeenCalledWith(...expected) Expected: StringContaining &quot;Result: 4&quot; Received: &quot;{\&quot;jsonrpc\&quot;:\&quot;2.0\&quot;,\&quot;id\&quot;:1,\&quot;error\&quot;:{\&quot;code\&quot;:-32000,\&quot;message\&quot;:\&quot;Tool execution failed\&quot;}}&quot; Number of calls: 1 at Object.toHaveBeenCalledWith (/Users/scott/perfecxion/secure-mcp/tests/unit/server/websocket-manager.test.ts:512:31)</failure> </testcase> <testcase classname="WebSocketManager tool execution should reject tool execution without permission" name="WebSocketManager tool execution should reject tool execution without permission" time="0.001"> </testcase> <testcase classname="WebSocketManager tool execution should handle tool execution errors" name="WebSocketManager tool execution should handle tool execution errors" time="0.001"> </testcase> <testcase classname="WebSocketManager rate limiting per connection should enforce per-connection rate limiting" name="WebSocketManager rate limiting per connection should enforce per-connection rate limiting" time="0.002"> </testcase> <testcase classname="WebSocketManager rate limiting per connection should reset rate limit window correctly" name="WebSocketManager rate limiting per connection should reset rate limit window correctly" time="0.002"> </testcase> <testcase classname="WebSocketManager connection cleanup should handle socket disconnection" name="WebSocketManager connection cleanup should handle socket disconnection" time="0.001"> </testcase> <testcase classname="WebSocketManager connection cleanup should clean up inactive connections" name="WebSocketManager connection cleanup should clean up inactive connections" time="0"> <failure>Error: expect(jest.fn()).toHaveBeenCalledWith(...expected) Expected: true Number of calls: 0 at Object.toHaveBeenCalledWith (/Users/scott/perfecxion/secure-mcp/tests/unit/server/websocket-manager.test.ts:643:37) at Promise.then.completed (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:298:28) at new Promise (&lt;anonymous&gt;) at callAsyncCircusFn (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:231:10) at _callCircusTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:316:40) at _runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:252:3) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:126:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at run (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:71:3) at runAndTransformResultsToJestFormat (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21) at jestAdapter (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19) at runTestInternal (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:367:16) at runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:444:34)</failure> </testcase> <testcase classname="WebSocketManager management methods should return correct connection statistics" name="WebSocketManager management methods should return correct connection statistics" time="0"> </testcase> <testcase classname="WebSocketManager management methods should broadcast notifications to all connections" name="WebSocketManager management methods should broadcast notifications to all connections" time="0.001"> </testcase> <testcase classname="WebSocketManager management methods should disconnect specific user" name="WebSocketManager management methods should disconnect specific user" time="0.001"> </testcase> <testcase classname="WebSocketManager error handling should handle socket errors" name="WebSocketManager error handling should handle socket errors" time="0.001"> <failure>Error: Unhandled error. ({ connectionId: &apos;e234ec45-f73b-4e8a-9fa8-5836348353f4&apos;, error: Error: Socket error at Object.&lt;anonymous&gt; (/Users/scott/perfecxion/secure-mcp/tests/unit/server/websocket-manager.test.ts:723:21) at Promise.then.completed (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:298:28) at new Promise (&lt;anonymous&gt;) at callAsyncCircusFn (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:231:10) at _callCircusTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:316:40) at _runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:252:3) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:126:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at run (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:71:3) at runAndTransformResultsToJestFormat (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21) at jestAdapter (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19) at runTestInternal (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:367:16) at runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:444:34) }) at WebSocketManager.emit (node:events:497:17) at WebSocketManager.emit [as handleError] (/Users/scott/perfecxion/secure-mcp/src/server/websocket-manager.ts:600:10) at handleError (/Users/scott/perfecxion/secure-mcp/src/server/websocket-manager.ts:192:12) at Object.errorHandler (/Users/scott/perfecxion/secure-mcp/tests/unit/server/websocket-manager.test.ts:725:7) at Promise.then.completed (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:298:28) at new Promise (&lt;anonymous&gt;) at callAsyncCircusFn (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:231:10) at _callCircusTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:316:40) at _runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:252:3) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:126:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at run (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:71:3) at runAndTransformResultsToJestFormat (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21) at jestAdapter (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19) at runTestInternal (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:367:16) at runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:444:34)</failure> </testcase> <testcase classname="WebSocketManager error handling should handle message processing errors gracefully" name="WebSocketManager error handling should handle message processing errors gracefully" time="0.001"> <failure>Error: expect(jest.fn()).toHaveBeenCalledWith(...expected) Expected: StringContaining &quot;Internal error&quot; Received 1: &quot;{\&quot;jsonrpc\&quot;:\&quot;2.0\&quot;,\&quot;method\&quot;:\&quot;notifications/initialized\&quot;,\&quot;params\&quot;:{\&quot;protocolVersion\&quot;:\&quot;2024-11-05\&quot;,\&quot;capabilities\&quot;:{\&quot;tools\&quot;:{\&quot;listChanged\&quot;:true},\&quot;resources\&quot;:{\&quot;listChanged\&quot;:true,\&quot;subscribe\&quot;:true},\&quot;logging\&quot;:{}},\&quot;serverInfo\&quot;:{\&quot;name\&quot;:\&quot;secure-mcp-server\&quot;,\&quot;version\&quot;:\&quot;1.0.0\&quot;}}}&quot; 2: &quot;{\&quot;jsonrpc\&quot;:\&quot;2.0\&quot;,\&quot;error\&quot;:{\&quot;code\&quot;:-32601,\&quot;message\&quot;:\&quot;Method not found: test\&quot;}}&quot; Number of calls: 2 at Object.toHaveBeenCalledWith (/Users/scott/perfecxion/secure-mcp/tests/unit/server/websocket-manager.test.ts:748:31)</failure> </testcase> <testcase classname="WebSocketManager security features should validate JSON-RPC structure" name="WebSocketManager security features should validate JSON-RPC structure" time="0"> <failure>Error: expect(jest.fn()).toHaveBeenCalledWith(...expected) Expected: StringContaining &quot;\&quot;error\&quot;&quot; Number of calls: 0 at Object.toHaveBeenCalledWith (/Users/scott/perfecxion/secure-mcp/tests/unit/server/websocket-manager.test.ts:777:33)</failure> </testcase> <testcase classname="WebSocketManager security features should handle protocol version mismatch" name="WebSocketManager security features should handle protocol version mismatch" time="0.001"> </testcase> <testcase classname="WebSocketManager security features should validate message format before processing" name="WebSocketManager security features should validate message format before processing" time="0.001"> </testcase> </testsuite> <testsuite name="SecurityMiddleware" errors="0" failures="15" skipped="0" timestamp="2025-09-28T03:00:04" time="0.252" tests="47"> <testcase classname="SecurityMiddleware input sanitization sanitizeInput should sanitize basic XSS attempts" name="SecurityMiddleware input sanitization sanitizeInput should sanitize basic XSS attempts" time="0.002"> <failure>Error: Invalid input detected at SecurityMiddleware.sanitizeInput (/Users/scott/perfecxion/secure-mcp/src/security/middleware.ts:96:17) at Object.sanitizeInput (/Users/scott/perfecxion/secure-mcp/tests/unit/security/middleware.test.ts:54:54)</failure> </testcase> <testcase classname="SecurityMiddleware input sanitization sanitizeInput should detect and reject SQL injection patterns" name="SecurityMiddleware input sanitization sanitizeInput should detect and reject SQL injection patterns" time="0.001"> </testcase> <testcase classname="SecurityMiddleware input sanitization sanitizeInput should detect and reject NoSQL injection patterns" name="SecurityMiddleware input sanitization sanitizeInput should detect and reject NoSQL injection patterns" time="0.001"> </testcase> <testcase classname="SecurityMiddleware input sanitization sanitizeInput should detect and reject command injection patterns" name="SecurityMiddleware input sanitization sanitizeInput should detect and reject command injection patterns" time="0.001"> </testcase> <testcase classname="SecurityMiddleware input sanitization sanitizeInput should detect and reject path traversal attempts" name="SecurityMiddleware input sanitization sanitizeInput should detect and reject path traversal attempts" time="0.001"> </testcase> <testcase classname="SecurityMiddleware input sanitization sanitizeInput should remove null bytes from strings" name="SecurityMiddleware input sanitization sanitizeInput should remove null bytes from strings" time="0"> </testcase> <testcase classname="SecurityMiddleware input sanitization sanitizeInput should handle nested objects recursively" name="SecurityMiddleware input sanitization sanitizeInput should handle nested objects recursively" time="0.001"> </testcase> <testcase classname="SecurityMiddleware input sanitization sanitizeInput should handle arrays of mixed types" name="SecurityMiddleware input sanitization sanitizeInput should handle arrays of mixed types" time="0.001"> </testcase> <testcase classname="SecurityMiddleware input sanitization sanitizeInput should handle primitive types without modification" name="SecurityMiddleware input sanitization sanitizeInput should handle primitive types without modification" time="0"> </testcase> <testcase classname="SecurityMiddleware input sanitization sanitizeRequestBody middleware should sanitize request body and query parameters" name="SecurityMiddleware input sanitization sanitizeRequestBody middleware should sanitize request body and query parameters" time="0.001"> </testcase> <testcase classname="SecurityMiddleware input sanitization sanitizeRequestBody middleware should handle sanitization errors" name="SecurityMiddleware input sanitization sanitizeRequestBody middleware should handle sanitization errors" time="0"> </testcase> <testcase classname="SecurityMiddleware input sanitization sanitizeRequestBody middleware should skip empty bodies and queries" name="SecurityMiddleware input sanitization sanitizeRequestBody middleware should skip empty bodies and queries" time="0.001"> </testcase> <testcase classname="SecurityMiddleware output sanitization sanitizeOutput middleware should intercept and sanitize JSON responses" name="SecurityMiddleware output sanitization sanitizeOutput middleware should intercept and sanitize JSON responses" time="0"> </testcase> <testcase classname="SecurityMiddleware output sanitization sanitizeOutput middleware should preserve allowed HTML tags in output" name="SecurityMiddleware output sanitization sanitizeOutput middleware should preserve allowed HTML tags in output" time="0.001"> </testcase> <testcase classname="SecurityMiddleware output sanitization sanitizeOutput middleware should skip sensitive fields in output sanitization" name="SecurityMiddleware output sanitization sanitizeOutput middleware should skip sensitive fields in output sanitization" time="0"> <failure>TypeError: Cannot read properties of undefined (reading &apos;calls&apos;) at Object.calls (/Users/scott/perfecxion/secure-mcp/tests/unit/security/middleware.test.ts:301:38) at Promise.then.completed (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:298:28) at new Promise (&lt;anonymous&gt;) at callAsyncCircusFn (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:231:10) at _callCircusTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:316:40) at _runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:252:3) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:126:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at run (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:71:3) at runAndTransformResultsToJestFormat (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21) at jestAdapter (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19) at runTestInternal (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:367:16) at runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:444:34)</failure> </testcase> <testcase classname="SecurityMiddleware security headers checkSecurityHeaders middleware should set all required security headers" name="SecurityMiddleware security headers checkSecurityHeaders middleware should set all required security headers" time="0.001"> <failure>Error: expect(jest.fn()).toHaveBeenCalledWith(...expected) Expected: ObjectContaining {&quot;content-security-policy&quot;: &quot;default-src &apos;self&apos;; script-src &apos;self&apos; &apos;unsafe-inline&apos;; style-src &apos;self&apos; &apos;unsafe-inline&apos;;&quot;, &quot;referrer-policy&quot;: &quot;strict-origin-when-cross-origin&quot;, &quot;strict-transport-security&quot;: &quot;max-age=31536000; includeSubDomains; preload&quot;, &quot;x-content-type-options&quot;: &quot;nosniff&quot;, &quot;x-frame-options&quot;: &quot;DENY&quot;, &quot;x-xss-protection&quot;: &quot;1; mode=block&quot;} Received 1: {&quot;Content-Security-Policy&quot;: &quot;default-src &apos;self&apos;; script-src &apos;self&apos; &apos;unsafe-inline&apos;; style-src &apos;self&apos; &apos;unsafe-inline&apos;;&quot;, &quot;Referrer-Policy&quot;: &quot;strict-origin-when-cross-origin&quot;, &quot;X-Content-Type-Options&quot;: &quot;nosniff&quot;, &quot;X-Frame-Options&quot;: &quot;DENY&quot;, &quot;X-Request-ID&quot;: &quot;c36356e7-46a5-4b4f-9884-40dee4c5397b&quot;, &quot;X-XSS-Protection&quot;: &quot;1; mode=block&quot;} 2: &quot;Strict-Transport-Security&quot;, &quot;max-age=31536000; includeSubDomains; preload&quot; Number of calls: 2 at Object.toHaveBeenCalledWith (/Users/scott/perfecxion/secure-mcp/tests/unit/security/middleware.test.ts:322:25) at Promise.then.completed (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:298:28) at new Promise (&lt;anonymous&gt;) at callAsyncCircusFn (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:231:10) at _callCircusTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:316:40) at _runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:252:3) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:126:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at run (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:71:3) at runAndTransformResultsToJestFormat (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21) at jestAdapter (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19) at runTestInternal (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:367:16) at runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:444:34)</failure> </testcase> <testcase classname="SecurityMiddleware security headers checkSecurityHeaders middleware should generate request ID if not present" name="SecurityMiddleware security headers checkSecurityHeaders middleware should generate request ID if not present" time="0"> <failure>TypeError: expect(...).toBeValidUUID is not a function at Object.toBeValidUUID (/Users/scott/perfecxion/secure-mcp/tests/unit/security/middleware.test.ts:334:45) at Promise.then.completed (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:298:28) at new Promise (&lt;anonymous&gt;) at callAsyncCircusFn (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:231:10) at _callCircusTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:316:40) at _runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:252:3) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:126:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at run (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:71:3) at runAndTransformResultsToJestFormat (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21) at jestAdapter (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19) at runTestInternal (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:367:16) at runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:444:34)</failure> </testcase> <testcase classname="SecurityMiddleware security headers checkSecurityHeaders middleware should preserve existing request ID" name="SecurityMiddleware security headers checkSecurityHeaders middleware should preserve existing request ID" time="0.001"> </testcase> <testcase classname="SecurityMiddleware security headers checkSecurityHeaders middleware should create security context" name="SecurityMiddleware security headers checkSecurityHeaders middleware should create security context" time="0.001"> </testcase> <testcase classname="SecurityMiddleware security headers checkSecurityHeaders middleware should detect suspicious headers" name="SecurityMiddleware security headers checkSecurityHeaders middleware should detect suspicious headers" time="0"> </testcase> <testcase classname="SecurityMiddleware security headers checkSecurityHeaders middleware should set HSTS header when HTTPS is forced" name="SecurityMiddleware security headers checkSecurityHeaders middleware should set HSTS header when HTTPS is forced" time="0.001"> <failure>Error: expect(jest.fn()).toHaveBeenCalledWith(...expected) Expected: ObjectContaining {&quot;Strict-Transport-Security&quot;: &quot;max-age=31536000; includeSubDomains; preload&quot;} Received 1: {&quot;Content-Security-Policy&quot;: &quot;default-src &apos;self&apos;; script-src &apos;self&apos; &apos;unsafe-inline&apos;; style-src &apos;self&apos; &apos;unsafe-inline&apos;;&quot;, &quot;Referrer-Policy&quot;: &quot;strict-origin-when-cross-origin&quot;, &quot;X-Content-Type-Options&quot;: &quot;nosniff&quot;, &quot;X-Frame-Options&quot;: &quot;DENY&quot;, &quot;X-Request-ID&quot;: &quot;ce1a69b6-95ab-43dd-a2f6-378aac58278e&quot;, &quot;X-XSS-Protection&quot;: &quot;1; mode=block&quot;} 2: &quot;Strict-Transport-Security&quot;, &quot;max-age=31536000; includeSubDomains; preload&quot; Number of calls: 2 at Object.toHaveBeenCalledWith (/Users/scott/perfecxion/secure-mcp/tests/unit/security/middleware.test.ts:388:25) at Promise.then.completed (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:298:28) at new Promise (&lt;anonymous&gt;) at callAsyncCircusFn (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:231:10) at _callCircusTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:316:40) at _runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:252:3) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:126:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at run (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:71:3) at runAndTransformResultsToJestFormat (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21) at jestAdapter (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19) at runTestInternal (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:367:16) at runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:444:34)</failure> </testcase> <testcase classname="SecurityMiddleware CSRF protection csrfProtection middleware should skip CSRF for safe methods" name="SecurityMiddleware CSRF protection csrfProtection middleware should skip CSRF for safe methods" time="0"> </testcase> <testcase classname="SecurityMiddleware CSRF protection csrfProtection middleware should skip CSRF for Bearer token authenticated requests" name="SecurityMiddleware CSRF protection csrfProtection middleware should skip CSRF for Bearer token authenticated requests" time="0.001"> </testcase> <testcase classname="SecurityMiddleware CSRF protection csrfProtection middleware should validate CSRF token for form submissions" name="SecurityMiddleware CSRF protection csrfProtection middleware should validate CSRF token for form submissions" time="0"> </testcase> <testcase classname="SecurityMiddleware CSRF protection csrfProtection middleware should reject requests with invalid CSRF token" name="SecurityMiddleware CSRF protection csrfProtection middleware should reject requests with invalid CSRF token" time="0.001"> </testcase> <testcase classname="SecurityMiddleware CSRF protection csrfProtection middleware should reject requests without CSRF token" name="SecurityMiddleware CSRF protection csrfProtection middleware should reject requests without CSRF token" time="0"> </testcase> <testcase classname="SecurityMiddleware rate limiting rateLimitByIPAndUser middleware should allow requests within rate limit" name="SecurityMiddleware rate limiting rateLimitByIPAndUser middleware should allow requests within rate limit" time="0.001"> </testcase> <testcase classname="SecurityMiddleware rate limiting rateLimitByIPAndUser middleware should reject requests exceeding rate limit" name="SecurityMiddleware rate limiting rateLimitByIPAndUser middleware should reject requests exceeding rate limit" time="0.001"> <failure>Error: expect(jest.fn()).toHaveBeenCalledWith(...expected) Expected: 429 Number of calls: 0 at Object.toHaveBeenCalledWith (/Users/scott/perfecxion/secure-mcp/tests/unit/security/middleware.test.ts:498:28)</failure> </testcase> <testcase classname="SecurityMiddleware rate limiting rateLimitByIPAndUser middleware should handle Redis errors gracefully" name="SecurityMiddleware rate limiting rateLimitByIPAndUser middleware should handle Redis errors gracefully" time="0.001"> <failure>Error: expect(jest.fn()).toHaveBeenCalledWith(...expected) Expected: &quot;Security rate limiting error&quot;, ObjectContaining {&quot;error&quot;: Any&lt;Error&gt;} Number of calls: 0 at Object.toHaveBeenCalledWith (/Users/scott/perfecxion/secure-mcp/tests/unit/security/middleware.test.ts:520:34)</failure> </testcase> <testcase classname="SecurityMiddleware request size limiting limitRequestSize middleware should allow requests within size limit" name="SecurityMiddleware request size limiting limitRequestSize middleware should allow requests within size limit" time="0"> </testcase> <testcase classname="SecurityMiddleware request size limiting limitRequestSize middleware should reject oversized requests" name="SecurityMiddleware request size limiting limitRequestSize middleware should reject oversized requests" time="0"> </testcase> <testcase classname="SecurityMiddleware request size limiting limitRequestSize middleware should handle missing content-length header" name="SecurityMiddleware request size limiting limitRequestSize middleware should handle missing content-length header" time="0"> </testcase> <testcase classname="SecurityMiddleware suspicious activity detection detectSuspiciousActivity middleware should detect suspicious URL patterns" name="SecurityMiddleware suspicious activity detection detectSuspiciousActivity middleware should detect suspicious URL patterns" time="0.001"> <failure>TypeError: Cannot read properties of null (reading &apos;suspicious&apos;) at Object.suspicious (/Users/scott/perfecxion/secure-mcp/tests/unit/security/middleware.test.ts:585:35) at Promise.then.completed (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:298:28) at new Promise (&lt;anonymous&gt;) at callAsyncCircusFn (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:231:10) at _callCircusTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:316:40) at _runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:252:3) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:126:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at run (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:71:3) at runAndTransformResultsToJestFormat (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21) at jestAdapter (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19) at runTestInternal (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:367:16) at runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:444:34)</failure> </testcase> <testcase classname="SecurityMiddleware suspicious activity detection detectSuspiciousActivity middleware should detect suspicious user agents" name="SecurityMiddleware suspicious activity detection detectSuspiciousActivity middleware should detect suspicious user agents" time="0"> <failure>Error: expect(received).toBe(expected) // Object.is equality Expected: true Received: undefined at Object.toBe (/Users/scott/perfecxion/secure-mcp/tests/unit/security/middleware.test.ts:603:47) at Promise.then.completed (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:298:28) at new Promise (&lt;anonymous&gt;) at callAsyncCircusFn (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:231:10) at _callCircusTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:316:40) at _runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:252:3) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:126:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at run (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:71:3) at runAndTransformResultsToJestFormat (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21) at jestAdapter (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19) at runTestInternal (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:367:16) at runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:444:34)</failure> </testcase> <testcase classname="SecurityMiddleware suspicious activity detection detectSuspiciousActivity middleware should detect multiple special characters in path" name="SecurityMiddleware suspicious activity detection detectSuspiciousActivity middleware should detect multiple special characters in path" time="0"> <failure>Error: expect(received).toBe(expected) // Object.is equality Expected: true Received: undefined at Object.toBe (/Users/scott/perfecxion/secure-mcp/tests/unit/security/middleware.test.ts:613:47) at Promise.then.completed (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:298:28) at new Promise (&lt;anonymous&gt;) at callAsyncCircusFn (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:231:10) at _callCircusTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:316:40) at _runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:252:3) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:126:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at run (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:71:3) at runAndTransformResultsToJestFormat (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21) at jestAdapter (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19) at runTestInternal (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:367:16) at runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:444:34)</failure> </testcase> <testcase classname="SecurityMiddleware suspicious activity detection detectSuspiciousActivity middleware should not flag normal requests as suspicious" name="SecurityMiddleware suspicious activity detection detectSuspiciousActivity middleware should not flag normal requests as suspicious" time="0.001"> <failure>Error: expect(received).not.toBe(expected) // Object.is equality Expected: not true at Object.toBe (/Users/scott/perfecxion/secure-mcp/tests/unit/security/middleware.test.ts:625:51) at Promise.then.completed (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:298:28) at new Promise (&lt;anonymous&gt;) at callAsyncCircusFn (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:231:10) at _callCircusTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:316:40) at _runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:252:3) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:126:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at run (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:71:3) at runAndTransformResultsToJestFormat (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21) at jestAdapter (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19) at runTestInternal (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:367:16) at runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:444:34)</failure> </testcase> <testcase classname="SecurityMiddleware honeypot protection honeypot middleware should block requests with filled honeypot field" name="SecurityMiddleware honeypot protection honeypot middleware should block requests with filled honeypot field" time="0.001"> </testcase> <testcase classname="SecurityMiddleware honeypot protection honeypot middleware should allow requests with empty honeypot field" name="SecurityMiddleware honeypot protection honeypot middleware should allow requests with empty honeypot field" time="0.004"> </testcase> <testcase classname="SecurityMiddleware honeypot protection honeypot middleware should allow requests without honeypot field" name="SecurityMiddleware honeypot protection honeypot middleware should allow requests without honeypot field" time="0"> </testcase> <testcase classname="SecurityMiddleware security event logging logSecurityEvent should log critical security events" name="SecurityMiddleware security event logging logSecurityEvent should log critical security events" time="0.001"> </testcase> <testcase classname="SecurityMiddleware security event logging logSecurityEvent should log events with appropriate severity levels" name="SecurityMiddleware security event logging logSecurityEvent should log events with appropriate severity levels" time="0"> </testcase> <testcase classname="SecurityMiddleware security event logging logSecurityEvent should log events without request context" name="SecurityMiddleware security event logging logSecurityEvent should log events without request context" time="0"> </testcase> <testcase classname="SecurityMiddleware suspicious content detection should detect various attack patterns" name="SecurityMiddleware suspicious content detection should detect various attack patterns" time="0.001"> </testcase> <testcase classname="SecurityMiddleware suspicious content detection should not flag legitimate content as suspicious" name="SecurityMiddleware suspicious content detection should not flag legitimate content as suspicious" time="0"> <failure>Error: expect(received).toBe(expected) // Object.is equality Expected: false Received: true at toBe (/Users/scott/perfecxion/secure-mcp/tests/unit/security/middleware.test.ts:810:36) at Array.forEach (&lt;anonymous&gt;) at Object.forEach (/Users/scott/perfecxion/secure-mcp/tests/unit/security/middleware.test.ts:808:25) at Promise.then.completed (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:298:28) at new Promise (&lt;anonymous&gt;) at callAsyncCircusFn (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:231:10) at _callCircusTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:316:40) at _runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:252:3) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:126:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at run (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:71:3) at runAndTransformResultsToJestFormat (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21) at jestAdapter (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19) at runTestInternal (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:367:16) at runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:444:34)</failure> </testcase> <testcase classname="SecurityMiddleware integration scenarios should handle complex nested malicious input" name="SecurityMiddleware integration scenarios should handle complex nested malicious input" time="0"> <failure>Error: expect(jest.fn()).toHaveBeenCalledWith(...expected) Expected: StringContaining &quot;attempt detected&quot;, Any&lt;Object&gt; Number of calls: 0 at Object.toHaveBeenCalledWith (/Users/scott/perfecxion/secure-mcp/tests/unit/security/middleware.test.ts:842:31)</failure> </testcase> <testcase classname="SecurityMiddleware integration scenarios should maintain performance with large legitimate inputs" name="SecurityMiddleware integration scenarios should maintain performance with large legitimate inputs" time="0"> <failure>TypeError: _testHelpers.TestUtilities.measureExecutionTime is not a function at Object.measureExecutionTime (/Users/scott/perfecxion/secure-mcp/tests/unit/security/middleware.test.ts:857:56) at Promise.then.completed (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:298:28) at new Promise (&lt;anonymous&gt;) at callAsyncCircusFn (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:231:10) at _callCircusTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:316:40) at _runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:252:3) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:126:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at run (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:71:3) at runAndTransformResultsToJestFormat (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21) at jestAdapter (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19) at runTestInternal (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:367:16) at runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:444:34)</failure> </testcase> <testcase classname="SecurityMiddleware integration scenarios should handle edge cases gracefully" name="SecurityMiddleware integration scenarios should handle edge cases gracefully" time="0"> <failure>Error: Invalid input detected at Object.&lt;anonymous&gt; (/Users/scott/perfecxion/secure-mcp/tests/unit/security/middleware.test.ts:213:30) at Promise.then.completed (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:298:28) at new Promise (&lt;anonymous&gt;) at callAsyncCircusFn (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:231:10) at _callCircusTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:316:40) at _runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:252:3) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:126:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at run (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:71:3) at runAndTransformResultsToJestFormat (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21) at jestAdapter (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19) at runTestInternal (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:367:16) at runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:444:34)</failure> </testcase> </testsuite> <testsuite name="JWT Service - Concurrent Validation Tests" errors="0" failures="6" skipped="0" timestamp="2025-09-28T03:00:05" time="0.128" tests="12"> <testcase classname="JWT Service - Concurrent Validation Tests High Concurrency Token Validation should handle 1000+ concurrent token validations" name="JWT Service - Concurrent Validation Tests High Concurrency Token Validation should handle 1000+ concurrent token validations" time="0.04"> </testcase> <testcase classname="JWT Service - Concurrent Validation Tests High Concurrency Token Validation should throttle validation requests under rate limit" name="JWT Service - Concurrent Validation Tests High Concurrency Token Validation should throttle validation requests under rate limit" time="0.008"> <failure>Error: expect(received).toBeGreaterThan(expected) Expected: &gt; 90 Received: 0 at Object.toBeGreaterThan (/Users/scott/perfecxion/secure-mcp/tests/unit/auth/concurrent-validation.test.ts:215:27)</failure> </testcase> <testcase classname="JWT Service - Concurrent Validation Tests High Concurrency Token Validation should maintain performance under concurrent load" name="JWT Service - Concurrent Validation Tests High Concurrency Token Validation should maintain performance under concurrent load" time="0.016"> </testcase> <testcase classname="JWT Service - Concurrent Validation Tests Concurrent Refresh Operations should prevent multiple refresh operations with same token" name="JWT Service - Concurrent Validation Tests Concurrent Refresh Operations should prevent multiple refresh operations with same token" time="0.002"> <failure>Error: expect(received).toBe(expected) // Object.is equality Expected: 1 Received: 0 at Object.toBe (/Users/scott/perfecxion/secure-mcp/tests/unit/auth/concurrent-validation.test.ts:309:26)</failure> </testcase> <testcase classname="JWT Service - Concurrent Validation Tests Concurrent Refresh Operations should handle distributed lock timeout gracefully" name="JWT Service - Concurrent Validation Tests Concurrent Refresh Operations should handle distributed lock timeout gracefully" time="0.012"> </testcase> <testcase classname="JWT Service - Concurrent Validation Tests Error Recovery and Resilience should recover from temporary Redis failures" name="JWT Service - Concurrent Validation Tests Error Recovery and Resilience should recover from temporary Redis failures" time="0.002"> </testcase> <testcase classname="JWT Service - Concurrent Validation Tests Error Recovery and Resilience should handle blacklist service failures gracefully" name="JWT Service - Concurrent Validation Tests Error Recovery and Resilience should handle blacklist service failures gracefully" time="0"> </testcase> <testcase classname="JWT Service - Concurrent Validation Tests Error Recovery and Resilience should maintain data consistency during partial failures" name="JWT Service - Concurrent Validation Tests Error Recovery and Resilience should maintain data consistency during partial failures" time="0.002"> </testcase> <testcase classname="JWT Service - Concurrent Validation Tests Memory and Resource Management should not leak memory during high concurrency operations" name="JWT Service - Concurrent Validation Tests Memory and Resource Management should not leak memory during high concurrency operations" time="0"> <failure>Error: Partial pipeline failure at Object.&lt;anonymous&gt; (/Users/scott/perfecxion/secure-mcp/tests/unit/auth/concurrent-validation.test.ts:411:43) at Promise.then.completed (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:298:28) at new Promise (&lt;anonymous&gt;) at callAsyncCircusFn (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:231:10) at _callCircusTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:316:40) at _runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:252:3) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:126:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at run (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:71:3) at runAndTransformResultsToJestFormat (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21) at jestAdapter (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19) at runTestInternal (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:367:16) at runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:444:34)</failure> </testcase> <testcase classname="JWT Service - Concurrent Validation Tests Memory and Resource Management should release distributed locks even on exceptions" name="JWT Service - Concurrent Validation Tests Memory and Resource Management should release distributed locks even on exceptions" time="0.001"> <failure>Error: Partial pipeline failure at Object.&lt;anonymous&gt; (/Users/scott/perfecxion/secure-mcp/tests/unit/auth/concurrent-validation.test.ts:411:43) at Promise.then.completed (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:298:28) at new Promise (&lt;anonymous&gt;) at callAsyncCircusFn (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:231:10) at _callCircusTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:316:40) at _runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:252:3) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:126:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at run (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:71:3) at runAndTransformResultsToJestFormat (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21) at jestAdapter (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19) at runTestInternal (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:367:16) at runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:444:34)</failure> </testcase> <testcase classname="JWT Service - Concurrent Validation Tests Performance Benchmarks should validate tokens within performance SLA" name="JWT Service - Concurrent Validation Tests Performance Benchmarks should validate tokens within performance SLA" time="0"> <failure>Error: Partial pipeline failure at Object.&lt;anonymous&gt; (/Users/scott/perfecxion/secure-mcp/tests/unit/auth/concurrent-validation.test.ts:411:43) at Promise.then.completed (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:298:28) at new Promise (&lt;anonymous&gt;) at callAsyncCircusFn (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:231:10) at _callCircusTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:316:40) at _runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:252:3) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:126:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at run (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:71:3) at runAndTransformResultsToJestFormat (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21) at jestAdapter (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19) at runTestInternal (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:367:16) at runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:444:34)</failure> </testcase> <testcase classname="JWT Service - Concurrent Validation Tests Performance Benchmarks should maintain throughput under sustained load" name="JWT Service - Concurrent Validation Tests Performance Benchmarks should maintain throughput under sustained load" time="0.001"> <failure>Error: Partial pipeline failure at Object.&lt;anonymous&gt; (/Users/scott/perfecxion/secure-mcp/tests/unit/auth/concurrent-validation.test.ts:411:43) at Promise.then.completed (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:298:28) at new Promise (&lt;anonymous&gt;) at callAsyncCircusFn (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:231:10) at _callCircusTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:316:40) at _runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:252:3) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:126:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at run (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:71:3) at runAndTransformResultsToJestFormat (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21) at jestAdapter (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19) at runTestInternal (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:367:16) at runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:444:34)</failure> </testcase> </testsuite> <testsuite name="JWT Service - Race Condition Security Tests" errors="0" failures="4" skipped="0" timestamp="2025-09-28T03:00:05" time="0.052" tests="12"> <testcase classname="JWT Service - Race Condition Security Tests Race Condition Prevention should prevent concurrent refresh token attacks" name="JWT Service - Race Condition Security Tests Race Condition Prevention should prevent concurrent refresh token attacks" time="0.001"> <failure>Error: expect(received).toBe(expected) // Object.is equality Expected: 1 Received: 0 at Object.toBe (/Users/scott/perfecxion/secure-mcp/tests/unit/auth/jwt-race-condition.test.ts:200:26)</failure> </testcase> <testcase classname="JWT Service - Race Condition Security Tests Race Condition Prevention should detect token replay attacks" name="JWT Service - Race Condition Security Tests Race Condition Prevention should detect token replay attacks" time="0.003"> </testcase> <testcase classname="JWT Service - Race Condition Security Tests Race Condition Prevention should handle high concurrency refresh attempts gracefully" name="JWT Service - Race Condition Security Tests Race Condition Prevention should handle high concurrency refresh attempts gracefully" time="0.004"> </testcase> <testcase classname="JWT Service - Race Condition Security Tests Race Condition Prevention should prevent session hijacking through token validation" name="JWT Service - Race Condition Security Tests Race Condition Prevention should prevent session hijacking through token validation" time="0"> </testcase> <testcase classname="JWT Service - Race Condition Security Tests Race Condition Prevention should enforce rate limits to prevent brute force attacks" name="JWT Service - Race Condition Security Tests Race Condition Prevention should enforce rate limits to prevent brute force attacks" time="0.002"> <failure>Error: expect(received).rejects.toThrow(expected) Expected substring: &quot;Rate limit exceeded for token validation&quot; Received message: &quot;Invalid or expired access token&quot; 232 | } catch (error) { 233 | logger.warn(&apos;Access token verification failed&apos;, { error: error.message }); &gt; 234 | throw new Error(&apos;Invalid or expired access token&apos;); | ^ 235 | } 236 | } 237 | at JWTService.verifyAccessToken (src/auth/jwt-service.ts:234:13) at Object.&lt;anonymous&gt; (tests/unit/auth/jwt-race-condition.test.ts:339:7) at Object.toThrow (/Users/scott/perfecxion/secure-mcp/node_modules/expect/build/index.js:218:22) at Object.toThrow (/Users/scott/perfecxion/secure-mcp/tests/unit/auth/jwt-race-condition.test.ts:341:17)</failure> </testcase> <testcase classname="JWT Service - Race Condition Security Tests Race Condition Prevention should block users after security violations" name="JWT Service - Race Condition Security Tests Race Condition Prevention should block users after security violations" time="0"> </testcase> <testcase classname="JWT Service - Race Condition Security Tests Atomic Operations should handle Redis failures gracefully during token operations" name="JWT Service - Race Condition Security Tests Atomic Operations should handle Redis failures gracefully during token operations" time="0.001"> </testcase> <testcase classname="JWT Service - Race Condition Security Tests Atomic Operations should ensure token family consistency during refresh" name="JWT Service - Race Condition Security Tests Atomic Operations should ensure token family consistency during refresh" time="0"> <failure>Error: Redis connection failed at Object.&lt;anonymous&gt; (/Users/scott/perfecxion/secure-mcp/tests/unit/auth/jwt-race-condition.test.ts:379:43) at Promise.then.completed (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:298:28) at new Promise (&lt;anonymous&gt;) at callAsyncCircusFn (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:231:10) at _callCircusTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:316:40) at _runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:252:3) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:126:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at run (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:71:3) at runAndTransformResultsToJestFormat (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21) at jestAdapter (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19) at runTestInternal (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:367:16) at runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:444:34)</failure> </testcase> <testcase classname="JWT Service - Race Condition Security Tests Security Monitoring should log security events for monitoring" name="JWT Service - Race Condition Security Tests Security Monitoring should log security events for monitoring" time="0.001"> <failure>Error: Redis connection failed at Object.&lt;anonymous&gt; (/Users/scott/perfecxion/secure-mcp/tests/unit/auth/jwt-race-condition.test.ts:379:43) at Promise.then.completed (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:298:28) at new Promise (&lt;anonymous&gt;) at callAsyncCircusFn (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:231:10) at _callCircusTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:316:40) at _runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:252:3) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:126:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at run (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:71:3) at runAndTransformResultsToJestFormat (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21) at jestAdapter (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19) at runTestInternal (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:367:16) at runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:444:34)</failure> </testcase> <testcase classname="JWT Service - Race Condition Security Tests Security Monitoring should track failed authentication attempts" name="JWT Service - Race Condition Security Tests Security Monitoring should track failed authentication attempts" time="0.001"> </testcase> <testcase classname="JWT Service - Race Condition Security Tests Cleanup and Resource Management should properly shutdown and cleanup resources" name="JWT Service - Race Condition Security Tests Cleanup and Resource Management should properly shutdown and cleanup resources" time="0"> </testcase> <testcase classname="JWT Service - Race Condition Security Tests Cleanup and Resource Management should handle initialization failures gracefully" name="JWT Service - Race Condition Security Tests Cleanup and Resource Management should handle initialization failures gracefully" time="0.001"> </testcase> </testsuite> <testsuite name="JWTService" errors="0" failures="15" skipped="0" timestamp="2025-09-28T03:00:05" time="0.072" tests="30"> <testcase classname="JWTService initialization should initialize successfully in development environment" name="JWTService initialization should initialize successfully in development environment" time="0.001"> </testcase> <testcase classname="JWTService initialization should load secrets from Vault in production environment" name="JWTService initialization should load secrets from Vault in production environment" time="0.001"> <failure>Error: expect(jest.fn()).toHaveBeenCalledWith(...expected) Expected: &quot;auth/jwt&quot; Number of calls: 0 at Object.toHaveBeenCalledWith (/Users/scott/perfecxion/secure-mcp/tests/unit/auth/jwt-service.test.ts:125:30)</failure> </testcase> <testcase classname="JWTService initialization should handle Vault errors gracefully" name="JWTService initialization should handle Vault errors gracefully" time="0.001"> <failure>Error: expect(received).rejects.toThrow() Received promise resolved instead of rejected Resolved to value: undefined at expect (/Users/scott/perfecxion/secure-mcp/node_modules/expect/build/index.js:113:15) at Object.expect (/Users/scott/perfecxion/secure-mcp/tests/unit/auth/jwt-service.test.ts:136:13) at Promise.then.completed (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:298:28) at new Promise (&lt;anonymous&gt;) at callAsyncCircusFn (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:231:10) at _callCircusTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:316:40) at _runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:252:3) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:126:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at run (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:71:3) at runAndTransformResultsToJestFormat (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21) at jestAdapter (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19) at runTestInternal (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:367:16) at runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:444:34)</failure> </testcase> <testcase classname="JWTService token generation should generate valid token pair" name="JWTService token generation should generate valid token pair" time="0.001"> <failure>Error: User is temporarily blocked from token operations at JWTService.generateTokenPair (/Users/scott/perfecxion/secure-mcp/src/auth/jwt-service.ts:121:13) at Object.&lt;anonymous&gt; (/Users/scott/perfecxion/secure-mcp/tests/unit/auth/jwt-service.test.ts:157:36)</failure> </testcase> <testcase classname="JWTService token generation should generate tokens with unique JTIs" name="JWTService token generation should generate tokens with unique JTIs" time="0.001"> <failure>Error: User is temporarily blocked from token operations at JWTService.generateTokenPair (/Users/scott/perfecxion/secure-mcp/src/auth/jwt-service.ts:121:13) at Object.&lt;anonymous&gt; (/Users/scott/perfecxion/secure-mcp/tests/unit/auth/jwt-service.test.ts:181:26)</failure> </testcase> <testcase classname="JWTService token generation should include all required claims in access token" name="JWTService token generation should include all required claims in access token" time="0.001"> <failure>Error: User is temporarily blocked from token operations at JWTService.generateTokenPair (/Users/scott/perfecxion/secure-mcp/src/auth/jwt-service.ts:121:13) at Object.&lt;anonymous&gt; (/Users/scott/perfecxion/secure-mcp/tests/unit/auth/jwt-service.test.ts:216:25)</failure> </testcase> <testcase classname="JWTService token verification should verify valid access token" name="JWTService token verification should verify valid access token" time="0"> <failure>Error: User is temporarily blocked from token operations at JWTService.generateTokenPair (/Users/scott/perfecxion/secure-mcp/src/auth/jwt-service.ts:121:13) at Object.&lt;anonymous&gt; (/Users/scott/perfecxion/secure-mcp/tests/unit/auth/jwt-service.test.ts:240:25)</failure> </testcase> <testcase classname="JWTService token verification should reject revoked access token" name="JWTService token verification should reject revoked access token" time="0.001"> <failure>Error: User is temporarily blocked from token operations at JWTService.generateTokenPair (/Users/scott/perfecxion/secure-mcp/src/auth/jwt-service.ts:121:13) at Object.&lt;anonymous&gt; (/Users/scott/perfecxion/secure-mcp/tests/unit/auth/jwt-service.test.ts:260:25)</failure> </testcase> <testcase classname="JWTService token verification should reject expired access token" name="JWTService token verification should reject expired access token" time="0.001"> </testcase> <testcase classname="JWTService token verification should reject token with invalid signature" name="JWTService token verification should reject token with invalid signature" time="0"> </testcase> <testcase classname="JWTService token verification should reject token with wrong issuer" name="JWTService token verification should reject token with wrong issuer" time="0"> </testcase> <testcase classname="JWTService token verification should reject token with wrong audience" name="JWTService token verification should reject token with wrong audience" time="0.001"> </testcase> <testcase classname="JWTService refresh token verification should verify valid refresh token" name="JWTService refresh token verification should verify valid refresh token" time="0.001"> <failure>Error: User is temporarily blocked from token operations at JWTService.generateTokenPair (/Users/scott/perfecxion/secure-mcp/src/auth/jwt-service.ts:121:13) at Object.&lt;anonymous&gt; (/Users/scott/perfecxion/secure-mcp/tests/unit/auth/jwt-service.test.ts:325:25)</failure> </testcase> <testcase classname="JWTService refresh token verification should reject refresh token with non-existent token family" name="JWTService refresh token verification should reject refresh token with non-existent token family" time="0.001"> <failure>Error: User is temporarily blocked from token operations at JWTService.generateTokenPair (/Users/scott/perfecxion/secure-mcp/src/auth/jwt-service.ts:121:13) at Object.&lt;anonymous&gt; (/Users/scott/perfecxion/secure-mcp/tests/unit/auth/jwt-service.test.ts:349:25)</failure> </testcase> <testcase classname="JWTService token refresh should refresh access token using valid refresh token" name="JWTService token refresh should refresh access token using valid refresh token" time="0"> <failure>Error: User is temporarily blocked from token operations at JWTService.generateTokenPair (/Users/scott/perfecxion/secure-mcp/src/auth/jwt-service.ts:121:13) at Object.&lt;anonymous&gt; (/Users/scott/perfecxion/secure-mcp/tests/unit/auth/jwt-service.test.ts:372:33)</failure> </testcase> <testcase classname="JWTService token refresh should handle refresh token with missing user data" name="JWTService token refresh should handle refresh token with missing user data" time="0.001"> <failure>Error: User is temporarily blocked from token operations at JWTService.generateTokenPair (/Users/scott/perfecxion/secure-mcp/src/auth/jwt-service.ts:121:13) at Object.&lt;anonymous&gt; (/Users/scott/perfecxion/secure-mcp/tests/unit/auth/jwt-service.test.ts:407:25)</failure> </testcase> <testcase classname="JWTService token revocation should revoke token by JTI" name="JWTService token revocation should revoke token by JTI" time="0.001"> </testcase> <testcase classname="JWTService token revocation should revoke all tokens for a session" name="JWTService token revocation should revoke all tokens for a session" time="0.006"> <failure>SyntaxError: Unexpected token &apos;v&apos;, &quot;valid&quot; is not valid JSON at JSON.parse (&lt;anonymous&gt;) at JWTService.parse [as revokeSession] (/Users/scott/perfecxion/secure-mcp/src/auth/jwt-service.ts:393:29) at Object.&lt;anonymous&gt; (/Users/scott/perfecxion/secure-mcp/tests/unit/auth/jwt-service.test.ts:471:7)</failure> </testcase> <testcase classname="JWTService token revocation should revoke all tokens for a user" name="JWTService token revocation should revoke all tokens for a user" time="0"> </testcase> <testcase classname="JWTService token utility methods should extract token from valid Authorization header" name="JWTService token utility methods should extract token from valid Authorization header" time="0.001"> </testcase> <testcase classname="JWTService token utility methods should return null for invalid Authorization header format" name="JWTService token utility methods should return null for invalid Authorization header format" time="0"> </testcase> <testcase classname="JWTService token utility methods should validate JWT token format" name="JWTService token utility methods should validate JWT token format" time="0"> </testcase> <testcase classname="JWTService token utility methods should get token expiry time" name="JWTService token utility methods should get token expiry time" time="0.001"> </testcase> <testcase classname="JWTService token utility methods should return null for token without expiry" name="JWTService token utility methods should return null for token without expiry" time="0"> </testcase> <testcase classname="JWTService token utility methods should check if token is expired" name="JWTService token utility methods should check if token is expired" time="0.001"> </testcase> <testcase classname="JWTService token utility methods should consider malformed token as expired" name="JWTService token utility methods should consider malformed token as expired" time="0"> </testcase> <testcase classname="JWTService security considerations should generate cryptographically secure JTIs" name="JWTService security considerations should generate cryptographically secure JTIs" time="0.002"> <failure>Error: User is temporarily blocked from token operations at JWTService.generateTokenPair (/Users/scott/perfecxion/secure-mcp/src/auth/jwt-service.ts:121:13) at async Promise.all (index 0) at Object.&lt;anonymous&gt; (/Users/scott/perfecxion/secure-mcp/tests/unit/auth/jwt-service.test.ts:585:26)</failure> </testcase> <testcase classname="JWTService security considerations should handle Redis failures gracefully during token operations" name="JWTService security considerations should handle Redis failures gracefully during token operations" time="0.001"> <failure>Error: expect(received).rejects.toThrow(expected) Expected substring: &quot;Redis connection failed&quot; Received message: &quot;User is temporarily blocked from token operations&quot; 119 | const isBlocked = await tokenRateLimiter.isUserBlocked(payload.userId); 120 | if (isBlocked) { &gt; 121 | throw new Error(&apos;User is temporarily blocked from token operations&apos;); | ^ 122 | } 123 | 124 | // Check concurrent session limit at JWTService.generateTokenPair (src/auth/jwt-service.ts:121:13) at Object.&lt;anonymous&gt; (tests/unit/auth/jwt-service.test.ts:618:7) at Object.toThrow (/Users/scott/perfecxion/secure-mcp/node_modules/expect/build/index.js:218:22) at Object.toThrow (/Users/scott/perfecxion/secure-mcp/tests/unit/auth/jwt-service.test.ts:625:19) at Promise.then.completed (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:298:28) at new Promise (&lt;anonymous&gt;) at callAsyncCircusFn (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/utils.js:231:10) at _callCircusTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:316:40) at _runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:252:3) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:126:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at _runTestsForDescribeBlock (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:121:9) at run (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/run.js:71:3) at runAndTransformResultsToJestFormat (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21) at jestAdapter (/Users/scott/perfecxion/secure-mcp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19) at runTestInternal (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:367:16) at runTest (/Users/scott/perfecxion/secure-mcp/node_modules/jest-runner/build/runTest.js:444:34)</failure> </testcase> <testcase classname="JWTService security considerations should not expose sensitive information in error messages" name="JWTService security considerations should not expose sensitive information in error messages" time="0"> </testcase> <testcase classname="JWTService security considerations should properly clean up expired tokens during operations" name="JWTService security considerations should properly clean up expired tokens during operations" time="0"> <failure>SyntaxError: Unexpected token &apos;v&apos;, &quot;valid&quot; is not valid JSON at JSON.parse (&lt;anonymous&gt;) at JWTService.parse [as revokeSession] (/Users/scott/perfecxion/secure-mcp/src/auth/jwt-service.ts:393:29) at Object.&lt;anonymous&gt; (/Users/scott/perfecxion/secure-mcp/tests/unit/auth/jwt-service.test.ts:654:7)</failure> </testcase> </testsuite> <testsuite name="TokenBlacklistManager" errors="0" failures="1" skipped="0" timestamp="2025-09-28T03:00:05" time="0.047" tests="18"> <testcase classname="TokenBlacklistManager initialization should initialize successfully" name="TokenBlacklistManager initialization should initialize successfully" time="0"> </testcase> <testcase classname="TokenBlacklistManager token blacklisting should add token to blacklist with TTL" name="TokenBlacklistManager token blacklisting should add token to blacklist with TTL" time="0.001"> </testcase> <testcase classname="TokenBlacklistManager token blacklisting should skip blacklisting for already expired tokens" name="TokenBlacklistManager token blacklisting should skip blacklisting for already expired tokens" time="0.001"> </testcase> <testcase classname="TokenBlacklistManager token blacklisting should check if token is blacklisted" name="TokenBlacklistManager token blacklisting should check if token is blacklisted" time="0.001"> </testcase> <testcase classname="TokenBlacklistManager token blacklisting should return false for non-blacklisted tokens" name="TokenBlacklistManager token blacklisting should return false for non-blacklisted tokens" time="0"> </testcase> <testcase classname="TokenBlacklistManager token blacklisting should fail secure on Redis errors" name="TokenBlacklistManager token blacklisting should fail secure on Redis errors" time="0.001"> </testcase> <testcase classname="TokenBlacklistManager token blacklisting should retrieve blacklist entry details" name="TokenBlacklistManager token blacklisting should retrieve blacklist entry details" time="0"> </testcase> <testcase classname="TokenBlacklistManager token blacklisting should remove token from blacklist" name="TokenBlacklistManager token blacklisting should remove token from blacklist" time="0.001"> </testcase> <testcase classname="TokenBlacklistManager user-level operations should check if user has blacklisted tokens" name="TokenBlacklistManager user-level operations should check if user has blacklisted tokens" time="0.001"> </testcase> <testcase classname="TokenBlacklistManager user-level operations should get all blacklisted tokens for user" name="TokenBlacklistManager user-level operations should get all blacklisted tokens for user" time="0"> </testcase> <testcase classname="TokenBlacklistManager user-level operations should blacklist all user tokens" name="TokenBlacklistManager user-level operations should blacklist all user tokens" time="0.001"> <failure>Error: expect(received).toBe(expected) // Object.is equality Expected: 2 Received: 0 at Object.toBe (/Users/scott/perfecxion/secure-mcp/tests/unit/auth/token-blacklist.test.ts:248:21)</failure> </testcase> <testcase classname="TokenBlacklistManager statistics and monitoring should provide blacklist statistics" name="TokenBlacklistManager statistics and monitoring should provide blacklist statistics" time="0.001"> </testcase> <testcase classname="TokenBlacklistManager statistics and monitoring should handle errors in statistics gracefully" name="TokenBlacklistManager statistics and monitoring should handle errors in statistics gracefully" time="0.001"> </testcase> <testcase classname="TokenBlacklistManager cleanup operations should cleanup expired blacklist entries" name="TokenBlacklistManager cleanup operations should cleanup expired blacklist entries" time="0"> </testcase> <testcase classname="TokenBlacklistManager cleanup operations should perform periodic cleanup" name="TokenBlacklistManager cleanup operations should perform periodic cleanup" time="0.001"> </testcase> <testcase classname="TokenBlacklistManager error handling should handle Redis pipeline failures gracefully" name="TokenBlacklistManager error handling should handle Redis pipeline failures gracefully" time="0.002"> </testcase> <testcase classname="TokenBlacklistManager error handling should handle scan errors during cleanup" name="TokenBlacklistManager error handling should handle scan errors during cleanup" time="0.001"> </testcase> <testcase classname="TokenBlacklistManager shutdown should shutdown gracefully" name="TokenBlacklistManager shutdown should shutdown gracefully" time="0"> </testcase> </testsuite> <testsuite name="Redis Database Connection" errors="0" failures="0" skipped="0" timestamp="2025-09-28T03:00:05" time="0.397" tests="31"> <testcase classname="Redis Database Connection Redis initialization should initialize Redis connection successfully" name="Redis Database Connection Redis initialization should initialize Redis connection successfully" time="0.012"> </testcase> <testcase classname="Redis Database Connection Redis initialization should handle connection success events" name="Redis Database Connection Redis initialization should handle connection success events" time="0.014"> </testcase> <testcase classname="Redis Database Connection Redis initialization should handle connection error events" name="Redis Database Connection Redis initialization should handle connection error events" time="0.009"> </testcase> <testcase classname="Redis Database Connection Redis initialization should handle reconnection events" name="Redis Database Connection Redis initialization should handle reconnection events" time="0.009"> </testcase> <testcase classname="Redis Database Connection Redis initialization should handle initialization failures gracefully" name="Redis Database Connection Redis initialization should handle initialization failures gracefully" time="0.017"> </testcase> <testcase classname="Redis Database Connection Redis operations string operations should perform GET operations" name="Redis Database Connection Redis operations string operations should perform GET operations" time="0.008"> </testcase> <testcase classname="Redis Database Connection Redis operations string operations should perform SET operations" name="Redis Database Connection Redis operations string operations should perform SET operations" time="0.01"> </testcase> <testcase classname="Redis Database Connection Redis operations string operations should perform SETEX operations with expiration" name="Redis Database Connection Redis operations string operations should perform SETEX operations with expiration" time="0.014"> </testcase> <testcase classname="Redis Database Connection Redis operations string operations should handle DEL operations" name="Redis Database Connection Redis operations string operations should handle DEL operations" time="0.007"> </testcase> <testcase classname="Redis Database Connection Redis operations string operations should handle EXISTS operations" name="Redis Database Connection Redis operations string operations should handle EXISTS operations" time="0.012"> </testcase> <testcase classname="Redis Database Connection Redis operations expiration operations should set key expiration with EXPIRE" name="Redis Database Connection Redis operations expiration operations should set key expiration with EXPIRE" time="0.007"> </testcase> <testcase classname="Redis Database Connection Redis operations expiration operations should get TTL for keys" name="Redis Database Connection Redis operations expiration operations should get TTL for keys" time="0.006"> </testcase> <testcase classname="Redis Database Connection Redis operations numeric operations should increment values with INCR" name="Redis Database Connection Redis operations numeric operations should increment values with INCR" time="0.011"> </testcase> <testcase classname="Redis Database Connection Redis operations set operations should add members to sets with SADD" name="Redis Database Connection Redis operations set operations should add members to sets with SADD" time="0.012"> </testcase> <testcase classname="Redis Database Connection Redis operations set operations should remove members from sets with SREM" name="Redis Database Connection Redis operations set operations should remove members from sets with SREM" time="0.015"> </testcase> <testcase classname="Redis Database Connection Redis operations set operations should get all set members with SMEMBERS" name="Redis Database Connection Redis operations set operations should get all set members with SMEMBERS" time="0.007"> </testcase> <testcase classname="Redis Database Connection Redis operations hash operations should get hash field values with HGET" name="Redis Database Connection Redis operations hash operations should get hash field values with HGET" time="0.007"> </testcase> <testcase classname="Redis Database Connection Redis operations hash operations should set hash field values with HSET" name="Redis Database Connection Redis operations hash operations should set hash field values with HSET" time="0.012"> </testcase> <testcase classname="Redis Database Connection Redis operations hash operations should get all hash fields with HGETALL" name="Redis Database Connection Redis operations hash operations should get all hash fields with HGETALL" time="0.007"> </testcase> <testcase classname="Redis Database Connection Redis operations key pattern operations should find keys matching patterns with KEYS" name="Redis Database Connection Redis operations key pattern operations should find keys matching patterns with KEYS" time="0.013"> </testcase> <testcase classname="Redis Database Connection Redis operations utility operations should ping Redis server" name="Redis Database Connection Redis operations utility operations should ping Redis server" time="0.008"> </testcase> <testcase classname="Redis Database Connection Error handling should handle Redis operation errors gracefully" name="Redis Database Connection Error handling should handle Redis operation errors gracefully" time="0.014"> </testcase> <testcase classname="Redis Database Connection Error handling should handle connection timeouts" name="Redis Database Connection Error handling should handle connection timeouts" time="0.03"> </testcase> <testcase classname="Redis Database Connection Error handling should handle network errors during operations" name="Redis Database Connection Error handling should handle network errors during operations" time="0.008"> </testcase> <testcase classname="Redis Database Connection Connection lifecycle should handle graceful disconnection" name="Redis Database Connection Connection lifecycle should handle graceful disconnection" time="0.007"> </testcase> <testcase classname="Redis Database Connection Connection lifecycle should handle connection status checks" name="Redis Database Connection Connection lifecycle should handle connection status checks" time="0.008"> </testcase> <testcase classname="Redis Database Connection Performance considerations should handle concurrent operations efficiently" name="Redis Database Connection Performance considerations should handle concurrent operations efficiently" time="0.007"> </testcase> <testcase classname="Redis Database Connection Performance considerations should handle large batch operations" name="Redis Database Connection Performance considerations should handle large batch operations" time="0.009"> </testcase> <testcase classname="Redis Database Connection Data type handling should handle JSON serialization for complex objects" name="Redis Database Connection Data type handling should handle JSON serialization for complex objects" time="0.011"> </testcase> <testcase classname="Redis Database Connection Data type handling should handle binary data appropriately" name="Redis Database Connection Data type handling should handle binary data appropriately" time="0.008"> </testcase> <testcase classname="Redis Database Connection Memory management should handle memory-efficient operations for large datasets" name="Redis Database Connection Memory management should handle memory-efficient operations for large datasets" time="0.01"> </testcase> </testsuite> <testsuite name="AuthMiddleware" errors="0" failures="0" skipped="0" timestamp="2025-09-28T03:00:05" time="0.885" tests="43"> <testcase classname="AuthMiddleware authenticate middleware should authenticate valid JWT token" name="AuthMiddleware authenticate middleware should authenticate valid JWT token" time="0.001"> </testcase> <testcase classname="AuthMiddleware authenticate middleware should reject request without authorization header" name="AuthMiddleware authenticate middleware should reject request without authorization header" time="0.001"> </testcase> <testcase classname="AuthMiddleware authenticate middleware should reject invalid authorization header format" name="AuthMiddleware authenticate middleware should reject invalid authorization header format" time="0"> </testcase> <testcase classname="AuthMiddleware authenticate middleware should reject invalid token format" name="AuthMiddleware authenticate middleware should reject invalid token format" time="0.001"> </testcase> <testcase classname="AuthMiddleware authenticate middleware should reject expired or invalid JWT" name="AuthMiddleware authenticate middleware should reject expired or invalid JWT" time="0.001"> </testcase> <testcase classname="AuthMiddleware authenticate middleware should reject request with non-existent session" name="AuthMiddleware authenticate middleware should reject request with non-existent session" time="0"> </testcase> <testcase classname="AuthMiddleware authenticate middleware should update session activity on successful authentication" name="AuthMiddleware authenticate middleware should update session activity on successful authentication" time="0.001"> </testcase> <testcase classname="AuthMiddleware requireMFA middleware should allow requests when MFA is not enabled" name="AuthMiddleware requireMFA middleware should allow requests when MFA is not enabled" time="0"> </testcase> <testcase classname="AuthMiddleware requireMFA middleware should allow requests when MFA is verified" name="AuthMiddleware requireMFA middleware should allow requests when MFA is verified" time="0.001"> </testcase> <testcase classname="AuthMiddleware requireMFA middleware should reject requests when MFA is required but not verified" name="AuthMiddleware requireMFA middleware should reject requests when MFA is required but not verified" time="0"> </testcase> <testcase classname="AuthMiddleware requireMFA middleware should reject requests without user authentication" name="AuthMiddleware requireMFA middleware should reject requests without user authentication" time="0.001"> </testcase> <testcase classname="AuthMiddleware requireRoles middleware should allow access with matching role" name="AuthMiddleware requireRoles middleware should allow access with matching role" time="0"> </testcase> <testcase classname="AuthMiddleware requireRoles middleware should allow access with admin role (bypasses specific role check)" name="AuthMiddleware requireRoles middleware should allow access with admin role (bypasses specific role check)" time="0.001"> </testcase> <testcase classname="AuthMiddleware requireRoles middleware should reject access without required role" name="AuthMiddleware requireRoles middleware should reject access without required role" time="0"> </testcase> <testcase classname="AuthMiddleware requireRoles middleware should handle multiple required roles" name="AuthMiddleware requireRoles middleware should handle multiple required roles" time="0.001"> </testcase> <testcase classname="AuthMiddleware requireRoles middleware should reject unauthenticated requests" name="AuthMiddleware requireRoles middleware should reject unauthenticated requests" time="0"> </testcase> <testcase classname="AuthMiddleware requirePermissions middleware should allow access with exact permission" name="AuthMiddleware requirePermissions middleware should allow access with exact permission" time="0.001"> </testcase> <testcase classname="AuthMiddleware requirePermissions middleware should allow access with wildcard permission" name="AuthMiddleware requirePermissions middleware should allow access with wildcard permission" time="0"> </testcase> <testcase classname="AuthMiddleware requirePermissions middleware should allow access with prefix wildcard permission" name="AuthMiddleware requirePermissions middleware should allow access with prefix wildcard permission" time="0.001"> </testcase> <testcase classname="AuthMiddleware requirePermissions middleware should reject access without required permission" name="AuthMiddleware requirePermissions middleware should reject access without required permission" time="0"> </testcase> <testcase classname="AuthMiddleware requirePermissions middleware should handle multiple required permissions (OR logic)" name="AuthMiddleware requirePermissions middleware should handle multiple required permissions (OR logic)" time="0.001"> </testcase> <testcase classname="AuthMiddleware optionalAuth middleware should set user when valid token is provided" name="AuthMiddleware optionalAuth middleware should set user when valid token is provided" time="0"> </testcase> <testcase classname="AuthMiddleware optionalAuth middleware should continue without user when no token is provided" name="AuthMiddleware optionalAuth middleware should continue without user when no token is provided" time="0.001"> </testcase> <testcase classname="AuthMiddleware optionalAuth middleware should continue without user when invalid token is provided" name="AuthMiddleware optionalAuth middleware should continue without user when invalid token is provided" time="0"> </testcase> <testcase classname="AuthMiddleware userRateLimit middleware should allow requests within rate limit" name="AuthMiddleware userRateLimit middleware should allow requests within rate limit" time="0.001"> </testcase> <testcase classname="AuthMiddleware userRateLimit middleware should reject requests exceeding rate limit" name="AuthMiddleware userRateLimit middleware should reject requests exceeding rate limit" time="0"> </testcase> <testcase classname="AuthMiddleware userRateLimit middleware should use IP address for unauthenticated requests" name="AuthMiddleware userRateLimit middleware should use IP address for unauthenticated requests" time="0"> </testcase> <testcase classname="AuthMiddleware userRateLimit middleware should handle Redis errors gracefully" name="AuthMiddleware userRateLimit middleware should handle Redis errors gracefully" time="0.001"> </testcase> <testcase classname="AuthMiddleware checkSessionTimeout middleware should allow requests with active session" name="AuthMiddleware checkSessionTimeout middleware should allow requests with active session" time="0"> </testcase> <testcase classname="AuthMiddleware checkSessionTimeout middleware should reject requests with expired session" name="AuthMiddleware checkSessionTimeout middleware should reject requests with expired session" time="0.001"> </testcase> <testcase classname="AuthMiddleware checkSessionTimeout middleware should continue when no session exists" name="AuthMiddleware checkSessionTimeout middleware should continue when no session exists" time="0"> </testcase> <testcase classname="AuthMiddleware ipWhitelist middleware should allow requests from whitelisted IP" name="AuthMiddleware ipWhitelist middleware should allow requests from whitelisted IP" time="0.001"> </testcase> <testcase classname="AuthMiddleware ipWhitelist middleware should reject requests from non-whitelisted IP" name="AuthMiddleware ipWhitelist middleware should reject requests from non-whitelisted IP" time="0"> </testcase> <testcase classname="AuthMiddleware session management methods should create new session" name="AuthMiddleware session management methods should create new session" time="0.001"> </testcase> <testcase classname="AuthMiddleware session management methods should get existing session" name="AuthMiddleware session management methods should get existing session" time="0"> </testcase> <testcase classname="AuthMiddleware session management methods should return null for non-existent session" name="AuthMiddleware session management methods should return null for non-existent session" time="0.001"> </testcase> <testcase classname="AuthMiddleware session management methods should delete session" name="AuthMiddleware session management methods should delete session" time="0"> </testcase> <testcase classname="AuthMiddleware session management methods should delete all user sessions" name="AuthMiddleware session management methods should delete all user sessions" time="0.001"> </testcase> <testcase classname="authenticateSocket should authenticate socket with valid token in auth" name="authenticateSocket should authenticate socket with valid token in auth" time="0"> </testcase> <testcase classname="authenticateSocket should authenticate socket with token in headers" name="authenticateSocket should authenticate socket with token in headers" time="0.001"> </testcase> <testcase classname="authenticateSocket should reject socket without token" name="authenticateSocket should reject socket without token" time="0.001"> </testcase> <testcase classname="authenticateSocket should reject socket with invalid token format" name="authenticateSocket should reject socket with invalid token format" time="0"> </testcase> <testcase classname="authenticateSocket should reject socket with invalid token" name="authenticateSocket should reject socket with invalid token" time="0.001"> </testcase> </testsuite> <testsuite name="Simple Test" errors="0" failures="0" skipped="0" timestamp="2025-09-28T03:00:06" time="0.022" tests="2"> <testcase classname="Simple Test should pass" name="Simple Test should pass" time="0"> </testcase> <testcase classname="Simple Test should handle basic math" name="Simple Test should handle basic math" time="0"> </testcase> </testsuite> </testsuites>

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/perfecxion-ai/secure-mcp'

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