@dizzlkheinz/ynab-mcpb 0.16.1 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/.code/agents/0098661e-0fa3-4990-beb9-c0cbf3f123aa/status.txt +1 -0
  2. package/.code/agents/1324/exec-call_tIpx9uV1TpARbAMZonRQm8AO.txt +757 -0
  3. package/.code/agents/1572/exec-call_GjVFBFOWcY7lE0idc5nWlLNh.txt +781 -0
  4. package/.code/agents/1846/exec-call_1YNAVD18RjrMN7JnfkkQhUP3.txt +766 -0
  5. package/.code/agents/1846/exec-call_lh3lDzE4WJAh1lFiomiiZ73D.txt +766 -0
  6. package/.code/agents/2038/exec-call_DYwOukaYsL8VCONWmV2rUW5u.txt +766 -0
  7. package/.code/agents/2038/exec-call_c7fOQ7UrpVcTtvdfGBRM146V.txt +652 -0
  8. package/.code/agents/2038/exec-call_ySNyq9Mm55jWE480s54r5QcA.txt +766 -0
  9. package/.code/agents/2256/exec-call_AtPcRWPmFPMcmX6qOFm1fCEY.txt +766 -0
  10. package/.code/agents/2454/exec-call_aFJpupwjfZeOBm7ixI5Vc8z2.txt +766 -0
  11. package/.code/agents/2454/exec-call_wogZ4HfXTodTEXvdgXlVUBpv.txt +766 -0
  12. package/.code/agents/2e905864-aa07-4314-bcf9-c5b32277e4ac/result.txt +36 -0
  13. package/.code/agents/3073/exec-call_Peeagc9DxGYLgE6pNdMZhqIE.txt +766 -0
  14. package/.code/agents/3073/exec-call_d2YSE3hXF08KRSoUM3qd8Z3x.txt +766 -0
  15. package/.code/agents/335aa031-466d-4fb7-925f-3cd864e264d0/result.txt +191 -0
  16. package/.code/agents/3364/exec-call_NbhIrsM5HhyDZDmJZG5CuCYL.txt +766 -0
  17. package/.code/agents/3364/exec-call_cKtJg0NrXiwXEFwlsE3uPZRA.txt +766 -0
  18. package/.code/agents/36d98414-5cde-4d9d-9a67-a240a18c1f07/result.txt +189 -0
  19. package/.code/agents/4604e866-b7b8-44f5-992f-2f683b0a523b/status.txt +1 -0
  20. package/.code/agents/5f8dc01c-47b3-4163-b0b3-aa31be89fcdc/status.txt +1 -0
  21. package/.code/agents/7/exec-call_HltHpkDox0Zm1vGEjdksUgpE.txt +1120 -0
  22. package/.code/agents/7/exec-call_LCATrOPPAgbxW9Q1z0XaVi2E.txt +2646 -0
  23. package/.code/agents/7/exec-call_W8DeRfNG9hvbgVFvf0clBf6R.txt +2646 -0
  24. package/.code/agents/94a0ddf3-a304-4ec3-913e-3cceef509948/error.txt +1 -0
  25. package/.code/agents/e2c752b7-711d-423a-af57-f53c809deb84/result.txt +160 -0
  26. package/.code/agents/e6601719-c31f-4a0e-8c71-d70787d0ab71/status.txt +1 -0
  27. package/.code/agents/f250b7ed-5bd5-4036-aa8c-ce63caee7d61/result.txt +20 -0
  28. package/AGENTS.md +1 -36
  29. package/CLAUDE.md +28 -43
  30. package/NUL +0 -1
  31. package/README.md +8 -10
  32. package/dist/bundle/index.cjs +41 -41
  33. package/dist/server/YNABMCPServer.js +28 -381
  34. package/dist/server/config.d.ts +2 -0
  35. package/dist/server/config.js +1 -0
  36. package/dist/tools/accountTools.d.ts +2 -0
  37. package/dist/tools/accountTools.js +45 -0
  38. package/dist/tools/adapters.d.ts +12 -0
  39. package/dist/tools/adapters.js +25 -0
  40. package/dist/tools/budgetTools.d.ts +2 -0
  41. package/dist/tools/budgetTools.js +30 -0
  42. package/dist/tools/categoryTools.d.ts +2 -0
  43. package/dist/tools/categoryTools.js +45 -0
  44. package/dist/tools/monthTools.d.ts +2 -0
  45. package/dist/tools/monthTools.js +32 -0
  46. package/dist/tools/payeeTools.d.ts +2 -0
  47. package/dist/tools/payeeTools.js +32 -0
  48. package/dist/tools/reconciliation/index.d.ts +2 -0
  49. package/dist/tools/reconciliation/index.js +33 -0
  50. package/dist/tools/schemas/common.d.ts +3 -0
  51. package/dist/tools/schemas/common.js +3 -0
  52. package/dist/tools/schemas/outputs/comparisonOutputs.d.ts +1 -1
  53. package/dist/tools/transactionTools.d.ts +2 -0
  54. package/dist/tools/transactionTools.js +124 -0
  55. package/dist/tools/utilityTools.d.ts +3 -1
  56. package/dist/tools/utilityTools.js +32 -2
  57. package/dist/types/index.d.ts +1 -0
  58. package/dist/types/toolRegistration.d.ts +27 -0
  59. package/dist/types/toolRegistration.js +1 -0
  60. package/package.json +2 -2
  61. package/scripts/run-domain-integration-tests.js +4 -1
  62. package/src/__tests__/workflows.e2e.test.ts +1 -7
  63. package/src/server/YNABMCPServer.ts +33 -519
  64. package/src/server/__tests__/toolRegistration.test.ts +236 -0
  65. package/src/server/config.ts +1 -0
  66. package/src/tools/__tests__/adapters.test.ts +113 -0
  67. package/src/tools/__tests__/utilityTools.test.ts +7 -7
  68. package/src/tools/accountTools.ts +53 -0
  69. package/src/tools/adapters.ts +74 -0
  70. package/src/tools/budgetTools.ts +37 -0
  71. package/src/tools/categoryTools.ts +53 -0
  72. package/src/tools/monthTools.ts +39 -0
  73. package/src/tools/payeeTools.ts +39 -0
  74. package/src/tools/reconciliation/index.ts +45 -0
  75. package/src/tools/schemas/common.ts +18 -0
  76. package/src/tools/transactionTools.ts +140 -0
  77. package/src/tools/utilityTools.ts +42 -2
  78. package/src/types/index.ts +3 -0
  79. package/src/types/toolRegistration.ts +88 -0
  80. package/.github/workflows/pr-description-check.yml +0 -88
  81. package/docs/README.md +0 -72
  82. package/docs/getting-started/CONFIGURATION.md +0 -175
  83. package/docs/getting-started/INSTALLATION.md +0 -333
  84. package/docs/getting-started/QUICKSTART.md +0 -282
  85. package/docs/guides/ARCHITECTURE.md +0 -533
  86. package/docs/guides/DEPLOYMENT.md +0 -189
  87. package/docs/guides/INTEGRATION_TESTING.md +0 -730
  88. package/docs/guides/TESTING.md +0 -591
  89. package/docs/reconciliation-flow.md +0 -83
  90. package/docs/reference/EXAMPLES.md +0 -946
  91. package/docs/reference/TOOLS.md +0 -348
  92. package/docs/reference/TROUBLESHOOTING.md +0 -481
@@ -0,0 +1,766 @@
1
+
2
+ > @dizzlkheinz/ynab-mcpb@0.16.2 test:integration:reconciliation
3
+ > node scripts/run-domain-integration-tests.js reconciliation
4
+
5
+
6
+  RUN  v3.2.4 C:/Users/ksutk/projects/ynab-mcpb
7
+
8
+ stderr | src/server/__tests__/security.integration.test.ts > Security Integration > end-to-end security flow > should sanitize sensitive data in logs
9
+ [INFO] ynab:create_transaction:creating transaction | SUCCESS | 1ms | rate_limit_remaining:2
10
+
11
+ stderr | src/server/__tests__/security.integration.test.ts > Security Integration > end-to-end security flow > should handle multiple users with independent rate limits
12
+ [INFO] ynab:test:test | SUCCESS | 0ms | rate_limit_remaining:2
13
+
14
+ stderr | src/server/__tests__/security.integration.test.ts > Security Integration > end-to-end security flow > should handle multiple users with independent rate limits
15
+ [INFO] ynab:test:test | SUCCESS | 1ms | rate_limit_remaining:1
16
+
17
+ stderr | src/server/__tests__/security.integration.test.ts > Security Integration > end-to-end security flow > should handle multiple users with independent rate limits
18
+ [INFO] ynab:test:test | SUCCESS | 0ms | rate_limit_remaining:0
19
+ [WARN] Rate limit exceeded for ynab:test
20
+
21
+ stderr | src/server/__tests__/security.integration.test.ts > Security Integration > end-to-end security flow > should handle multiple users with independent rate limits
22
+ [ERROR] ynab:test:test | FAILED | 1ms | rate_limit_remaining:0 | error:"Rate limit exceeded. Please wait before making additional requests."
23
+ [WARN] Rate limit exceeded for ynab:test
24
+
25
+ stderr | src/server/__tests__/security.integration.test.ts > Security Integration > end-to-end security flow > should handle multiple users with independent rate limits
26
+ [INFO] ynab:test:test | SUCCESS | 0ms | rate_limit_remaining:2
27
+
28
+ stderr | src/server/__tests__/security.integration.test.ts > Security Integration > end-to-end security flow > should provide comprehensive security statistics
29
+ [INFO] ynab:test:test | SUCCESS | 0ms | rate_limit_remaining:2
30
+
31
+ stderr | src/server/__tests__/security.integration.test.ts > Security Integration > end-to-end security flow > should provide comprehensive security statistics
32
+ [INFO] ynab:test:test | SUCCESS | 0ms | rate_limit_remaining:1
33
+
34
+ stderr | src/server/__tests__/security.integration.test.ts > Security Integration > end-to-end security flow > should provide comprehensive security statistics
35
+ [ERROR] ynab:test:test | FAILED | 0ms | rate_limit_remaining:0 | error:"Test error"
36
+ [WARN] Rate limit exceeded for ynab:test
37
+
38
+ stderr | src/server/__tests__/security.integration.test.ts > Security Integration > performance under load > should handle rapid requests efficiently
39
+ [INFO] ynab:performance_test:performance test | SUCCESS | 0ms | rate_limit_remaining:0
40
+ [WARN] Rate limit exceeded for ynab:performance_test
41
+ [INFO] ynab:performance_test:performance test | SUCCESS | 1ms | rate_limit_remaining:0
42
+ [WARN] Rate limit exceeded for ynab:performance_test
43
+ [INFO] ynab:performance_test:performance test | SUCCESS | 1ms | rate_limit_remaining:0
44
+ [WARN] Rate limit exceeded for ynab:performance_test
45
+
46
+ ✓  integration:domain  src/server/__tests__/security.integration.test.ts > Security Integration > end-to-end security flow > should handle a complete successful request flow 20ms
47
+ ✓  integration:domain  src/server/__tests__/security.integration.test.ts > Security Integration > end-to-end security flow > should handle validation failures with proper logging 7ms
48
+ ✓  integration:domain  src/server/__tests__/security.integration.test.ts > Security Integration > end-to-end security flow > should handle rate limiting with proper responses and logging 13ms
49
+ ✓  integration:domain  src/server/__tests__/security.integration.test.ts > Security Integration > end-to-end security flow > should sanitize sensitive data in logs 5ms
50
+ ✓  integration:domain  src/server/__tests__/security.integration.test.ts > Security Integration > end-to-end security flow > should handle multiple users with independent rate limits 4ms
51
+ ✓  integration:domain  src/server/__tests__/security.integration.test.ts > Security Integration > end-to-end security flow > should provide comprehensive security statistics 12ms
52
+ ✓  integration:domain  src/server/__tests__/security.integration.test.ts > Security Integration > performance under load > should handle rapid requests efficiently 6ms
53
+ stderr | src/server/__tests__/security.integration.test.ts > Security Integration > cleanup and maintenance > should maintain log size limits
54
+ [INFO] tool1:op1 | SUCCESS
55
+ [INFO] tool2:op2 | SUCCESS
56
+ [INFO] tool3:op3 | SUCCESS
57
+
58
+ ✓  integration:domain  src/server/__tests__/security.integration.test.ts > Security Integration > cleanup and maintenance > should clean up expired rate limit entries 68ms
59
+ ✓  integration:domain  src/server/__tests__/security.integration.test.ts > Security Integration > cleanup and maintenance > should maintain log size limits 2ms
60
+ ✓  integration:domain  src/__tests__/tools/reconciliation/csvParser.integration.test.ts > CSV Parser Integration Tests > TD Bank CSV > should parse TD CSV correctly 18ms
61
+ ✓  integration:domain  src/__tests__/tools/reconciliation/csvParser.integration.test.ts > CSV Parser Integration Tests > RBC Debit/Credit CSV > should parse RBC CSV with debit/credit columns 2ms
62
+ ✓  integration:domain  src/__tests__/tools/reconciliation/csvParser.integration.test.ts > CSV Parser Integration Tests > Ambiguous Debit/Credit Warning > should warn when both debit and credit have values 2ms
63
+ ✓  integration:domain  src/__tests__/tools/reconciliation/csvParser.integration.test.ts > CSV Parser Integration Tests > European Number Format > should handle European number format 89ms
64
+ ✓  integration:domain  src/__tests__/tools/reconciliation/csvParser.integration.test.ts > Matcher Integration Tests > should achieve high confidence matches with exact integer comparison 30ms
65
+ ✓  integration:domain  src/__tests__/tools/reconciliation/csvParser.integration.test.ts > Matcher Integration Tests > should use exact integer comparison (no float precision issues) 1ms
66
+ ✓  integration:domain  src/tools/reconciliation/__tests__/recommendationEngine.integration.test.ts > Recommendation Engine Integration > with account_id and budget_id provided > should generate recommendations for unmatched bank transactions 74ms
67
+ ✓  integration:domain  src/tools/reconciliation/__tests__/recommendationEngine.integration.test.ts > Recommendation Engine Integration > with account_id and budget_id provided > should handle the EvoCarShare scenario correctly 9ms
68
+ ✓  integration:domain  src/tools/reconciliation/__tests__/recommendationEngine.integration.test.ts > Recommendation Engine Integration > with account_id and budget_id provided > should generate update_cleared recommendations for unmatched uncleared YNAB transactions 3ms
69
+ ✓  integration:domain  src/tools/reconciliation/__tests__/recommendationEngine.integration.test.ts > Recommendation Engine Integration > with account_id and budget_id provided > should generate review_duplicate for suggested matches 5ms
70
+ ✓  integration:domain  src/tools/reconciliation/__tests__/recommendationEngine.integration.test.ts > Recommendation Engine Integration > without account_id and budget_id (backward compatibility) > should NOT generate recommendations when IDs are missing 9ms
71
+ ✓  integration:domain  src/tools/reconciliation/__tests__/recommendationEngine.integration.test.ts > Recommendation Engine Integration > without account_id and budget_id (backward compatibility) > should still perform analysis correctly without recommendations 3ms
72
+ ✓  integration:domain  src/tools/reconciliation/__tests__/recommendationEngine.integration.test.ts > Recommendation Engine Integration > complex scenarios > should generate multiple recommendations for multiple unmatched transactions 3ms
73
+ ✓  integration:domain  src/tools/reconciliation/__tests__/recommendationEngine.integration.test.ts > Recommendation Engine Integration > complex scenarios > should handle repeat amounts with recommendations 6ms
74
+ ✓  integration:domain  src/tools/reconciliation/__tests__/recommendationEngine.integration.test.ts > Recommendation Engine Integration > complex scenarios > should generate mixed recommendation types for complex scenario 11ms
75
+ ✓  integration:domain  src/tools/reconciliation/__tests__/recommendationEngine.integration.test.ts > Recommendation Engine Integration > complex scenarios > should prioritize recommendations by priority and confidence 3ms
76
+ ✓  integration:domain  src/tools/reconciliation/__tests__/recommendationEngine.integration.test.ts > Recommendation Engine Integration > complex scenarios > should handle large discrepancies with appropriate recommendations 4ms
77
+ ✓  integration:domain  src/tools/reconciliation/__tests__/recommendationEngine.integration.test.ts > Recommendation Engine Integration > recommendation field validation > should include all required metadata fields 4ms
78
+ ✓  integration:domain  src/tools/reconciliation/__tests__/recommendationEngine.integration.test.ts > Recommendation Engine Integration > recommendation field validation > should generate valid create_transaction parameters 2ms
79
+ ✓  integration:domain  src/server/__tests__/errorHandler.integration.test.ts > Error Handler Integration Tests > 401 Unauthorized Errors > should handle 401 errors in budget tools 11ms
80
+ ✓  integration:domain  src/server/__tests__/errorHandler.integration.test.ts > Error Handler Integration Tests > 401 Unauthorized Errors > should handle 401 errors in account tools 3ms
81
+ ✓  integration:domain  src/server/__tests__/errorHandler.integration.test.ts > Error Handler Integration Tests > 401 Unauthorized Errors > should handle 401 errors in transaction tools 2ms
82
+ ✓  integration:domain  src/server/__tests__/errorHandler.integration.test.ts > Error Handler Integration Tests > 403 Forbidden Errors > should handle 403 errors in category tools 1ms
83
+ ✓  integration:domain  src/server/__tests__/errorHandler.integration.test.ts > Error Handler Integration Tests > 403 Forbidden Errors > should handle 403 errors in payee tools 2ms
84
+ ✓  integration:domain  src/server/__tests__/errorHandler.integration.test.ts > Error Handler Integration Tests > 404 Not Found Errors > should handle 404 errors in month tools 2ms
85
+ ✓  integration:domain  src/server/__tests__/errorHandler.integration.test.ts > Error Handler Integration Tests > 429 Rate Limit Errors > should handle 429 errors in utility tools 1ms
86
+ ✓  integration:domain  src/server/__tests__/errorHandler.integration.test.ts > Error Handler Integration Tests > 500 Internal Server Errors > should handle 500 errors consistently across tools 1ms
87
+ ✓  integration:domain  src/server/__tests__/errorHandler.integration.test.ts > Error Handler Integration Tests > Network and Connection Errors > should handle network timeout errors 3ms
88
+ ✓  integration:domain  src/server/__tests__/errorHandler.integration.test.ts > Error Handler Integration Tests > Network and Connection Errors > should handle connection refused errors 9ms
89
+ ✓  integration:domain  src/server/__tests__/errorHandler.integration.test.ts > Error Handler Integration Tests > Error Response Structure > should maintain consistent error response structure across all tools 19ms
90
+ ✓  integration:domain  src/server/__tests__/errorHandler.integration.test.ts > Error Handler Integration Tests > Sensitive Data Sanitization > should sanitize sensitive data in error messages across all tools 3ms
91
+ ✓  integration:domain  src/server/__tests__/errorHandler.integration.test.ts > Error Handler Integration Tests > ErrorHandler with real ResponseFormatter > should format errors using real responseFormatter 3ms
92
+ ✓  integration:domain  src/server/__tests__/errorHandler.integration.test.ts > Error Handler Integration Tests > ErrorHandler with real ResponseFormatter > should work with ValidationError 8ms
93
+ ✓  integration:domain  src/server/__tests__/errorHandler.integration.test.ts > Error Handler Integration Tests > Minify override integration > should respect responseFormatter minify settings 2ms
94
+ ✓  integration:domain  src/server/__tests__/errorHandler.integration.test.ts > Error Handler Integration Tests > Minify override integration > should handle pretty formatting 2ms
95
+ ✓  integration:domain  src/server/__tests__/errorHandler.integration.test.ts > Error Handler Integration Tests > Static vs instance consistency > should produce identical results for static and instance calls 3ms
96
+ ✓  integration:domain  src/server/__tests__/errorHandler.integration.test.ts > Error Handler Integration Tests > Static vs instance consistency > should produce identical results for createValidationError 2ms
97
+ ✓  integration:domain  src/server/__tests__/errorHandler.integration.test.ts > Error Handler Integration Tests > Circular dependency resolution > should not have circular dependency issues 1ms
98
+ ✓  integration:domain  src/server/__tests__/errorHandler.integration.test.ts > Error Handler Integration Tests > Circular dependency resolution > should work with different formatter implementations 1ms
99
+ ✓  integration:domain  src/server/__tests__/errorHandler.integration.test.ts > Error Handler Integration Tests > ErrorHandler factory > should create different instances with different formatters 1ms
100
+ ✓  integration:domain  src/server/__tests__/errorHandler.integration.test.ts > Error Handler Integration Tests > ErrorHandler factory > should maintain instance isolation 2ms
101
+ ✓  integration:domain  src/__tests__/tools/reconciliation/real-world.integration.test.ts > Real World CSV Validation (Simulated) > Wealthsimple > should parse Wealthsimple export correctly 14ms
102
+ ✓  integration:domain  src/__tests__/tools/reconciliation/real-world.integration.test.ts > Real World CSV Validation (Simulated) > TD Canada Trust > should parse TD export correctly using preset 3ms
103
+ ↓  integration:domain  src/tools/__tests__/accountTools.delta.integration.test.ts > Delta-backed account tool handlers > serves cached account results on the second invocation
104
+ ↓  integration:domain  src/tools/__tests__/accountTools.delta.integration.test.ts > Delta-backed account tool handlers > reports delta usage for list_transactions after a change
105
+ ↓  integration:domain  src/tools/__tests__/accountTools.integration.test.ts > Account Tools Integration > should successfully list accounts from real API
106
+ ↓  integration:domain  src/tools/__tests__/accountTools.integration.test.ts > Account Tools Integration > should successfully get account details from real API
107
+ ↓  integration:domain  src/tools/__tests__/accountTools.integration.test.ts > Account Tools Integration > should handle invalid budget ID gracefully
108
+ ↓  integration:domain  src/tools/__tests__/accountTools.integration.test.ts > Account Tools Integration > should handle invalid account ID gracefully
109
+ ↓  integration:domain  src/tools/__tests__/categoryTools.delta.integration.test.ts > Delta-backed category tool handler > serves cached category results on the second invocation
110
+ ↓  integration:domain  src/tools/__tests__/categoryTools.integration.test.ts > Category Tools Integration > handleListCategories > should successfully list categories from real API
111
+ ↓  integration:domain  src/tools/__tests__/categoryTools.integration.test.ts > Category Tools Integration > handleListCategories > should handle invalid budget ID gracefully
112
+ ↓  integration:domain  src/tools/__tests__/categoryTools.integration.test.ts > Category Tools Integration > handleGetCategory > should successfully get category details from real API
113
+ ↓  integration:domain  src/tools/__tests__/categoryTools.integration.test.ts > Category Tools Integration > handleGetCategory > should handle invalid category ID gracefully
114
+ ↓  integration:domain  src/tools/__tests__/categoryTools.integration.test.ts > Category Tools Integration > handleUpdateCategory > should successfully update category budget from real API
115
+ ↓  integration:domain  src/tools/__tests__/categoryTools.integration.test.ts > Category Tools Integration > handleUpdateCategory > should handle invalid category ID gracefully
116
+ ↓  integration:domain  src/tools/__tests__/categoryTools.integration.test.ts > Category Tools Integration > handleUpdateCategory > should handle negative budgeted amounts
117
+ ↓  integration:domain  src/tools/__tests__/deltaFetcher.scheduled.integration.test.ts > Delta fetcher scheduled transactions integration > caches scheduled transactions on repeated fetches
118
+ ↓  integration:domain  src/tools/__tests__/monthTools.delta.integration.test.ts > Delta-backed month tool handler > serves cached month summaries on the second invocation
119
+ ↓  integration:domain  src/tools/__tests__/payeeTools.delta.integration.test.ts > Delta-backed payee tool handler > serves cached payee results on the second invocation
120
+ ↓  integration:domain  src/tools/__tests__/monthTools.integration.test.ts > Month Tools Integration > handleListMonths > should successfully list months from real API
121
+ ↓  integration:domain  src/tools/__tests__/monthTools.integration.test.ts > Month Tools Integration > handleListMonths > should handle invalid budget ID gracefully
122
+ ↓  integration:domain  src/tools/__tests__/monthTools.integration.test.ts > Month Tools Integration > handleGetMonth > should successfully get month details from real API
123
+ ↓  integration:domain  src/tools/__tests__/monthTools.integration.test.ts > Month Tools Integration > handleGetMonth > should handle invalid budget ID gracefully
124
+ ↓  integration:domain  src/tools/__tests__/monthTools.integration.test.ts > Month Tools Integration > handleGetMonth > should handle invalid month format gracefully
125
+ ↓  integration:domain  src/tools/__tests__/payeeTools.integration.test.ts > Payee Tools Integration > handleListPayees > should successfully list payees from real API
126
+ ↓  integration:domain  src/tools/__tests__/payeeTools.integration.test.ts > Payee Tools Integration > handleListPayees > should handle invalid budget ID gracefully
127
+ ↓  integration:domain  src/tools/__tests__/payeeTools.integration.test.ts > Payee Tools Integration > handleGetPayee > should successfully get payee details from real API
128
+ ↓  integration:domain  src/tools/__tests__/payeeTools.integration.test.ts > Payee Tools Integration > handleGetPayee > should handle invalid payee ID gracefully
129
+ ↓  integration:domain  src/tools/__tests__/payeeTools.integration.test.ts > Payee Tools Integration > handleGetPayee > should handle invalid budget ID gracefully
130
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Budget Management Integration > should handle complete budget listing and retrieval workflow
131
+ Rate limit check for token_7f8358f9: 0/200 requests, remaining: 200, limited: false
132
+
133
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Budget Management Integration > should handle complete budget listing and retrieval workflow
134
+ Recorded request for token_7f8358f9: 1/200 requests
135
+
136
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Budget Management Integration > should handle complete budget listing and retrieval workflow
137
+ Rate limit check for token_7f8358f9: 1/200 requests, remaining: 199, limited: false
138
+ [INFO] ynab:list_budgets | SUCCESS | 10ms | rate_limit_remaining:199
139
+
140
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Budget Management Integration > should handle complete budget listing and retrieval workflow
141
+ Rate limit check for token_7f8358f9: 1/200 requests, remaining: 199, limited: false
142
+
143
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Budget Management Integration > should handle complete budget listing and retrieval workflow
144
+ Recorded request for token_7f8358f9: 2/200 requests
145
+
146
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Budget Management Integration > should handle complete budget listing and retrieval workflow
147
+ Rate limit check for token_7f8358f9: 2/200 requests, remaining: 198, limited: false
148
+ [INFO] ynab:get_budget | SUCCESS | 3ms | rate_limit_remaining:198
149
+
150
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Budget Management Integration > should handle budget retrieval errors gracefully
151
+ Rate limit check for token_7f8358f9: 2/200 requests, remaining: 198, limited: false
152
+
153
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Budget Management Integration > should handle budget retrieval errors gracefully
154
+ Recorded request for token_7f8358f9: 3/200 requests
155
+
156
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Budget Management Integration > should handle budget retrieval errors gracefully
157
+ Rate limit check for token_7f8358f9: 3/200 requests, remaining: 197, limited: false
158
+ [INFO] ynab:get_budget | SUCCESS | 5ms | rate_limit_remaining:197
159
+
160
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Account Management Integration > should handle complete account workflow
161
+ Rate limit check for token_7f8358f9: 3/200 requests, remaining: 197, limited: false
162
+
163
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Account Management Integration > should handle complete account workflow
164
+ Recorded request for token_7f8358f9: 4/200 requests
165
+
166
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Account Management Integration > should handle complete account workflow
167
+ Rate limit check for token_7f8358f9: 4/200 requests, remaining: 196, limited: false
168
+ [INFO] ynab:list_accounts | SUCCESS | 4ms | rate_limit_remaining:196
169
+
170
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Account Management Integration > should handle complete account workflow
171
+ Rate limit check for token_7f8358f9: 4/200 requests, remaining: 196, limited: false
172
+
173
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Account Management Integration > should handle complete account workflow
174
+ Recorded request for token_7f8358f9: 5/200 requests
175
+
176
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Account Management Integration > should handle complete account workflow
177
+ Rate limit check for token_7f8358f9: 5/200 requests, remaining: 195, limited: false
178
+ [INFO] ynab:get_account | SUCCESS | 4ms | rate_limit_remaining:195
179
+
180
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Account Management Integration > should handle complete account workflow
181
+ Rate limit check for token_7f8358f9: 5/200 requests, remaining: 195, limited: false
182
+
183
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Account Management Integration > should handle complete account workflow
184
+ Recorded request for token_7f8358f9: 6/200 requests
185
+
186
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Account Management Integration > should handle complete account workflow
187
+ Rate limit check for token_7f8358f9: 6/200 requests, remaining: 194, limited: false
188
+ [INFO] ynab:create_account | SUCCESS | 3ms | rate_limit_remaining:194
189
+
190
+ ✓  integration:domain  src/__tests__/comprehensive.integration.test.ts > YNAB utils mock > converts milliunits using SDK rounding rules 7ms
191
+ ✓  integration:domain  src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Budget Management Integration > should handle complete budget listing and retrieval workflow 41ms
192
+ ✓  integration:domain  src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Budget Management Integration > should handle budget retrieval errors gracefully 17ms
193
+ ✓  integration:domain  src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Account Management Integration > should handle complete account workflow 24ms
194
+ ↓  integration:domain  src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Transaction Management Integration > should handle complete transaction workflow
195
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Transaction Management Integration > should handle transaction filtering
196
+ Rate limit check for token_7f8358f9: 6/200 requests, remaining: 194, limited: false
197
+
198
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Transaction Management Integration > should handle transaction filtering
199
+ Recorded request for token_7f8358f9: 7/200 requests
200
+
201
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Transaction Management Integration > should handle transaction filtering
202
+ Rate limit check for token_7f8358f9: 7/200 requests, remaining: 193, limited: false
203
+ [INFO] ynab:list_transactions | SUCCESS | 2ms | rate_limit_remaining:193
204
+
205
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Transaction Management Integration > should handle transaction filtering
206
+ Rate limit check for token_7f8358f9: 7/200 requests, remaining: 193, limited: false
207
+
208
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Transaction Management Integration > should handle transaction filtering
209
+ Recorded request for token_7f8358f9: 8/200 requests
210
+
211
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Transaction Management Integration > should handle transaction filtering
212
+ Rate limit check for token_7f8358f9: 8/200 requests, remaining: 192, limited: false
213
+ [INFO] ynab:list_transactions | SUCCESS | 1ms | rate_limit_remaining:192
214
+
215
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Transaction Management Integration > should handle transaction filtering
216
+ Rate limit check for token_7f8358f9: 8/200 requests, remaining: 192, limited: false
217
+
218
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Transaction Management Integration > should handle transaction filtering
219
+ Recorded request for token_7f8358f9: 9/200 requests
220
+
221
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Transaction Management Integration > should handle transaction filtering
222
+ Rate limit check for token_7f8358f9: 9/200 requests, remaining: 191, limited: false
223
+ [INFO] ynab:list_transactions | SUCCESS | 1ms | rate_limit_remaining:191
224
+
225
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Constructor and Environment Validation > should create server instance with valid access token 42ms
226
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Constructor and Environment Validation > should throw ValidationError when YNAB_ACCESS_TOKEN is missing 16ms
227
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Constructor and Environment Validation > should throw ValidationError when YNAB_ACCESS_TOKEN is empty string 16ms
228
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Constructor and Environment Validation > should throw ValidationError when YNAB_ACCESS_TOKEN is only whitespace 9ms
229
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Constructor and Environment Validation > should trim whitespace from access token 12ms
230
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Category Management Integration > should handle complete category workflow
231
+ Rate limit check for token_7f8358f9: 9/200 requests, remaining: 191, limited: false
232
+
233
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Category Management Integration > should handle complete category workflow
234
+ Recorded request for token_7f8358f9: 10/200 requests
235
+
236
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Category Management Integration > should handle complete category workflow
237
+ Rate limit check for token_7f8358f9: 10/200 requests, remaining: 190, limited: false
238
+ [INFO] ynab:list_categories | SUCCESS | 4ms | rate_limit_remaining:190
239
+
240
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Category Management Integration > should handle complete category workflow
241
+ Rate limit check for token_7f8358f9: 10/200 requests, remaining: 190, limited: false
242
+
243
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Category Management Integration > should handle complete category workflow
244
+ Recorded request for token_7f8358f9: 11/200 requests
245
+
246
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Category Management Integration > should handle complete category workflow
247
+ Rate limit check for token_7f8358f9: 11/200 requests, remaining: 189, limited: false
248
+ [INFO] ynab:get_category | SUCCESS | 3ms | rate_limit_remaining:189
249
+
250
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Category Management Integration > should handle complete category workflow
251
+ Rate limit check for token_7f8358f9: 11/200 requests, remaining: 189, limited: false
252
+
253
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Category Management Integration > should handle complete category workflow
254
+ Recorded request for token_7f8358f9: 12/200 requests
255
+
256
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Category Management Integration > should handle complete category workflow
257
+ Rate limit check for token_7f8358f9: 12/200 requests, remaining: 188, limited: false
258
+ [INFO] ynab:update_category | SUCCESS | 3ms | rate_limit_remaining:188
259
+
260
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Utility Tools Integration > should handle user information retrieval
261
+ Rate limit check for token_7f8358f9: 12/200 requests, remaining: 188, limited: false
262
+
263
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Utility Tools Integration > should handle user information retrieval
264
+ Recorded request for token_7f8358f9: 13/200 requests
265
+
266
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Utility Tools Integration > should handle user information retrieval
267
+ Rate limit check for token_7f8358f9: 13/200 requests, remaining: 187, limited: false
268
+ [INFO] ynab:get_user | SUCCESS | 1ms | rate_limit_remaining:187
269
+
270
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Utility Tools Integration > should handle amount conversion
271
+ Rate limit check for token_7f8358f9: 13/200 requests, remaining: 187, limited: false
272
+
273
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Utility Tools Integration > should handle amount conversion
274
+ Recorded request for token_7f8358f9: 14/200 requests
275
+
276
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Utility Tools Integration > should handle amount conversion
277
+ Rate limit check for token_7f8358f9: 14/200 requests, remaining: 186, limited: false
278
+ [INFO] ynab:convert_amount | SUCCESS | 2ms | rate_limit_remaining:186
279
+
280
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Utility Tools Integration > should handle amount conversion
281
+ Rate limit check for token_7f8358f9: 14/200 requests, remaining: 186, limited: false
282
+
283
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Utility Tools Integration > should handle amount conversion
284
+ Recorded request for token_7f8358f9: 15/200 requests
285
+
286
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Utility Tools Integration > should handle amount conversion
287
+ Rate limit check for token_7f8358f9: 15/200 requests, remaining: 185, limited: false
288
+ [INFO] ynab:convert_amount | SUCCESS | 1ms | rate_limit_remaining:185
289
+
290
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Server Initialization > should successfully initialize server with valid configuration 27ms
291
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Server Initialization > should fail initialization with missing access token 28ms
292
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Server Initialization > should fail initialization with invalid access token format 10ms
293
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Error Handling Integration > should handle various API error scenarios
294
+ Rate limit check for token_7f8358f9: 15/200 requests, remaining: 185, limited: false
295
+
296
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Error Handling Integration > should handle various API error scenarios
297
+ Recorded request for token_7f8358f9: 16/200 requests
298
+
299
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Error Handling Integration > should handle various API error scenarios
300
+ Rate limit check for token_7f8358f9: 16/200 requests, remaining: 184, limited: false
301
+ [INFO] ynab:list_budgets | SUCCESS | 1ms | rate_limit_remaining:184
302
+
303
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Error Handling Integration > should handle various API error scenarios
304
+ Rate limit check for token_7f8358f9: 16/200 requests, remaining: 184, limited: false
305
+
306
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Error Handling Integration > should handle various API error scenarios
307
+ Recorded request for token_7f8358f9: 17/200 requests
308
+
309
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Error Handling Integration > should handle various API error scenarios
310
+ Rate limit check for token_7f8358f9: 17/200 requests, remaining: 183, limited: false
311
+ [INFO] ynab:get_budget | SUCCESS | 1ms | rate_limit_remaining:183
312
+
313
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Error Handling Integration > should validate input parameters
314
+ Rate limit check for token_7f8358f9: 17/200 requests, remaining: 183, limited: false
315
+ [ERROR] ynab:get_budget | FAILED | 0ms | rate_limit_remaining:183 | error:"Validation failed: Validation error: Invalid input: expected string, received undefined at "budget_id""
316
+
317
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should invalidate cache on write operations
318
+ Rate limit check for token_7f8358f9: 17/200 requests, remaining: 183, limited: false
319
+
320
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should invalidate cache on write operations
321
+ Recorded request for token_7f8358f9: 18/200 requests
322
+
323
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should invalidate cache on write operations
324
+ Rate limit check for token_7f8358f9: 18/200 requests, remaining: 182, limited: false
325
+ [INFO] ynab:list_accounts | SUCCESS | 2ms | rate_limit_remaining:182
326
+
327
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should invalidate cache on write operations
328
+ Rate limit check for token_7f8358f9: 18/200 requests, remaining: 182, limited: false
329
+
330
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should invalidate cache on write operations
331
+ Recorded request for token_7f8358f9: 19/200 requests
332
+
333
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should invalidate cache on write operations
334
+ Rate limit check for token_7f8358f9: 19/200 requests, remaining: 181, limited: false
335
+ [INFO] ynab:create_account | SUCCESS | 0ms | rate_limit_remaining:181
336
+
337
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should invalidate cache on write operations
338
+ Rate limit check for token_7f8358f9: 19/200 requests, remaining: 181, limited: false
339
+
340
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should invalidate cache on write operations
341
+ Recorded request for token_7f8358f9: 20/200 requests
342
+
343
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should invalidate cache on write operations
344
+ Rate limit check for token_7f8358f9: 20/200 requests, remaining: 180, limited: false
345
+ [INFO] ynab:list_accounts | SUCCESS | 1ms | rate_limit_remaining:180
346
+
347
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should handle cache warming after setting default budget
348
+ Rate limit check for token_7f8358f9: 20/200 requests, remaining: 180, limited: false
349
+
350
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should handle cache warming after setting default budget
351
+ Recorded request for token_7f8358f9: 21/200 requests
352
+
353
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should handle cache warming after setting default budget
354
+ Rate limit check for token_7f8358f9: 21/200 requests, remaining: 179, limited: false
355
+ [INFO] ynab:set_default_budget | SUCCESS | 2ms | rate_limit_remaining:179
356
+
357
+ ✓  integration:domain  src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Transaction Management Integration > should handle transaction filtering 17ms
358
+ ✓  integration:domain  src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Category Management Integration > should handle complete category workflow 23ms
359
+ ✓  integration:domain  src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Utility Tools Integration > should handle user information retrieval 8ms
360
+ ✓  integration:domain  src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Utility Tools Integration > should handle amount conversion 10ms
361
+ ✓  integration:domain  src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Error Handling Integration > should handle various API error scenarios 11ms
362
+ ✓  integration:domain  src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Error Handling Integration > should validate input parameters 11ms
363
+ ↓  integration:domain  src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should cache budget list requests and improve performance on subsequent calls
364
+ ✓  integration:domain  src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should invalidate cache on write operations 12ms
365
+ ↓  integration:domain  src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should not cache filtered transaction requests
366
+ ✓  integration:domain  src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should handle cache warming after setting default budget 13ms
367
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should handle cache clear operation
368
+ Rate limit check for token_7f8358f9: 21/200 requests, remaining: 179, limited: false
369
+
370
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should handle cache clear operation
371
+ Recorded request for token_7f8358f9: 22/200 requests
372
+
373
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should handle cache clear operation
374
+ Rate limit check for token_7f8358f9: 22/200 requests, remaining: 178, limited: false
375
+ [INFO] ynab:list_budgets | SUCCESS | 1ms | rate_limit_remaining:178
376
+
377
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should handle cache clear operation
378
+ Rate limit check for token_7f8358f9: 22/200 requests, remaining: 178, limited: false
379
+
380
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should handle cache clear operation
381
+ Recorded request for token_7f8358f9: 23/200 requests
382
+
383
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should handle cache clear operation
384
+ Rate limit check for token_7f8358f9: 23/200 requests, remaining: 177, limited: false
385
+ [INFO] ynab:clear_cache | SUCCESS | 1ms | rate_limit_remaining:177
386
+
387
+ ✓  integration:domain  src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should handle cache clear operation 9ms
388
+ ↓  integration:domain  src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should respect cache TTL and return fresh data after expiration
389
+ ↓  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > should successfully list transactions from real API
390
+ ↓  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > should successfully list transactions with account filter
391
+ ↓  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > should successfully list transactions with date filter
392
+ ↓  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > should get transaction details if transactions exist
393
+ ↓  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > should handle invalid budget ID gracefully
394
+ ↓  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > should handle invalid transaction ID gracefully
395
+ ↓  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > handleCreateTransactions - Integration > should create two transactions via the bulk handler
396
+ ↓  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > handleCreateTransactions - Integration > should detect duplicates when reusing import IDs
397
+ ↓  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > handleCreateTransactions - Integration > should invalidate caches so new transactions appear in list results
398
+ ↓  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > handleCreateTransactions - Integration > should create transactions across multiple accounts within one batch
399
+ ↓  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > handleCreateTransactions - Integration > should handle large batches and report response mode
400
+ ↓  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > handleCreateTransactions - Integration > should support dry run mode without creating transactions
401
+ ↓  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > handleCreateTransactions - Integration > should confirm dry run does not persist data
402
+ ↓  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > handleCreateTransactions - Integration > should handle invalid budget IDs gracefully during bulk create
403
+ ↓  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > handleCreateTransactions - Integration > should handle invalid account IDs during bulk create
404
+ ↓  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > handleCreateTransactions - Integration > documents rate limiting behavior for bulk requests
405
+ ·  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > Bulk Update Transactions Integration > should successfully update multiple transactions with provided metadata
406
+ ·  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > Bulk Update Transactions Integration > should successfully update transactions without metadata (using cache/API)
407
+ ·  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > Bulk Update Transactions Integration > should provide before/after preview in dry_run mode
408
+ ·  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > Bulk Update Transactions Integration > should handle partial failures gracefully
409
+ ✓  integration:domain  src/tools/__tests__/utilityTools.integration.test.ts > Utility Tools Integration Tests > handleGetUser > should retrieve user information from YNAB API 407ms
410
+ ✓  integration:domain  src/tools/__tests__/utilityTools.integration.test.ts > Utility Tools Integration Tests > handleConvertAmount > should convert various dollar amounts to milliunits 3ms
411
+ ✓  integration:domain  src/tools/__tests__/utilityTools.integration.test.ts > Utility Tools Integration Tests > handleConvertAmount > should convert various milliunit amounts to dollars 2ms
412
+ ✓  integration:domain  src/tools/__tests__/utilityTools.integration.test.ts > Utility Tools Integration Tests > handleConvertAmount > should handle precision edge cases 1ms
413
+ ✓  integration:domain  src/tools/__tests__/budgetTools.delta.integration.test.ts > Delta-backed budget tool handler > serves cached budget summaries on the second invocation 407ms
414
+ stderr | src/tools/__tests__/budgetTools.integration.test.ts > Budget Tools Integration > handleListBudgets > should successfully list budgets from real API
415
+ ✅ Successfully listed 7 budgets
416
+
417
+ ✓  integration:domain  src/tools/__tests__/budgetTools.integration.test.ts > Budget Tools Integration > handleListBudgets > should successfully list budgets from real API 391ms
418
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Server Startup Validation > should validate YNAB token during startup 399ms
419
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Real YNAB API Integration > should successfully validate real YNAB token 386ms
420
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Server Startup Validation > should handle invalid token gracefully during startup 149ms
421
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Real YNAB API Integration > should successfully get user information
422
+ ✅ Connected to YNAB user: 495de152-d100-4404-a9b4-d6115e038294
423
+
424
+ stderr | src/tools/reconciliation/__tests__/executor.integration.test.ts > Reconciliation Executor - Bulk Create Integration > creates 10 transactions via bulk mode
425
+ ⏭️ Skipping test due to YNAB API rate limit
426
+
427
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Real YNAB API Integration > should successfully get user information 296ms
428
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Real YNAB API Integration > should successfully get budgets
429
+ ✅ Found 7 budget(s)
430
+ - test plan (7b47d8bb-ce4c-40c0-a9eb-c6d715af9a76)
431
+ - 8 Laguna (65b65f40-da07-4037-af17-d6559b9145af)
432
+ - going to mexico (Archived on 2025-01-24) (b371d9f6-94fd-48a1-9b19-f51ab17436f1)
433
+ - 2025 (bf00f94f-f532-4b2c-a39c-e8d9a963effd)
434
+ - 1376 W 14th (9e4e96bf-f857-4c84-9f07-1e201de1bd40)
435
+ - SRC (6d225b60-eaf5-4157-bd7a-9995b3e1b608)
436
+ - KYS (c402250b-c77e-4739-a1c4-d087d02693d5)
437
+
438
+ stderr | src/tools/__tests__/budgetTools.integration.test.ts > Budget Tools Integration > handleGetBudget > should successfully get budget details from real API
439
+ ✅ Successfully retrieved budget: test plan
440
+ - 320 accounts
441
+ - 65 categories
442
+
443
+ ✓  integration:domain  src/tools/__tests__/budgetTools.integration.test.ts > Budget Tools Integration > handleGetBudget > should successfully get budget details from real API 543ms
444
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Server Startup Validation > should provide detailed error messages for authentication failures 256ms
445
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Server Startup Validation > should surface malformed token responses as AuthenticationError 13ms
446
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Tool Registration > should register all expected YNAB tools 9ms
447
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Tool Registration > should register budget management tools 10ms
448
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Tool Registration > should register account management tools 9ms
449
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Tool Registration > should register transaction management tools 9ms
450
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Tool Registration > should register category management tools 8ms
451
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Tool Registration > should register payee management tools 8ms
452
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Tool Registration > should register utility tools 10ms
453
+ ✓  integration:domain  src/tools/reconciliation/__tests__/executor.integration.test.ts > Reconciliation Executor - Bulk Create Integration > creates 10 transactions via bulk mode 291ms
454
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Real YNAB API Integration > should successfully get budgets 115ms
455
+ stderr | src/tools/__tests__/budgetTools.integration.test.ts > Budget Tools Integration > handleGetBudget > should handle invalid budget ID gracefully
456
+ ✅ Correctly handled invalid budget ID: Budget not found
457
+
458
+ ✓  integration:domain  src/tools/__tests__/budgetTools.integration.test.ts > Budget Tools Integration > handleGetBudget > should handle invalid budget ID gracefully 108ms
459
+ stderr | src/tools/reconciliation/__tests__/executor.integration.test.ts > Reconciliation Executor - Bulk Create Integration > reports duplicates when import IDs already exist
460
+ ⏭️ Skipping test due to YNAB API rate limit
461
+
462
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Real YNAB API Integration > should handle invalid token gracefully 104ms
463
+ ✓  integration:domain  src/tools/reconciliation/__tests__/executor.integration.test.ts > Reconciliation Executor - Bulk Create Integration > reports duplicates when import IDs already exist 202ms
464
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Transport Setup > should attempt to connect with StdioServerTransport 197ms
465
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Real YNAB API Integration > should successfully start and connect MCP server 214ms
466
+ stderr | src/tools/reconciliation/__tests__/executor.integration.test.ts > Reconciliation Executor - Bulk Create Integration > processes 150 transactions across multiple chunks
467
+ ⏭️ Skipping test due to YNAB API rate limit
468
+
469
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Transport Setup > should handle transport connection errors gracefully 104ms
470
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should execute get_user tool via the registry
471
+ Rate limit check for token_74700d80: 0/200 requests, remaining: 200, limited: false
472
+
473
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should execute get_user tool via the registry
474
+ Recorded request for token_74700d80: 1/200 requests
475
+
476
+ ✓  integration:domain  src/tools/reconciliation/__tests__/executor.integration.test.ts > Reconciliation Executor - Bulk Create Integration > processes 150 transactions across multiple chunks 245ms
477
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Transport Setup > should validate token before attempting transport connection 103ms
478
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Error Reporting > should report configuration errors clearly 7ms
479
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Real YNAB API Integration > should handle multiple rapid API calls without rate limiting issues 140ms
480
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should expose registered tools via the registry 26ms
481
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should execute get_user tool via the registry
482
+ Rate limit check for token_74700d80: 1/200 requests, remaining: 199, limited: false
483
+ [INFO] ynab:get_user | SUCCESS | 98ms | rate_limit_remaining:199
484
+
485
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should set and retrieve default budget using tools
486
+ Rate limit check for token_74700d80: 1/200 requests, remaining: 199, limited: false
487
+
488
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should set and retrieve default budget using tools
489
+ Recorded request for token_74700d80: 2/200 requests
490
+
491
+ stderr | src/tools/reconciliation/__tests__/executor.integration.test.ts > Reconciliation Executor - Bulk Create Integration > processes 20 transactions in under 8 seconds
492
+ ⏭️ Skipping test due to YNAB API rate limit
493
+
494
+ ✓  integration:domain  src/tools/reconciliation/__tests__/executor.integration.test.ts > Reconciliation Executor - Bulk Create Integration > processes 20 transactions in under 8 seconds 203ms
495
+ stderr | src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Error Reporting > should handle startup errors without exposing sensitive information
496
+ Server startup failed: Token validation failed: [object Object]
497
+
498
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Error Reporting > should report authentication errors clearly 99ms
499
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should execute get_user tool via the registry 109ms
500
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should set and retrieve default budget using tools
501
+ Rate limit check for token_74700d80: 2/200 requests, remaining: 198, limited: false
502
+ [INFO] ynab:list_budgets | SUCCESS | 100ms | rate_limit_remaining:198
503
+
504
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should set and retrieve default budget using tools
505
+ Rate limit check for token_74700d80: 2/200 requests, remaining: 198, limited: false
506
+
507
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should set and retrieve default budget using tools
508
+ Recorded request for token_74700d80: 3/200 requests
509
+
510
+ stderr | src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Error Reporting > should handle startup errors without exposing sensitive information
511
+ Server startup failed: Token validation failed: [object Object]
512
+
513
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Error Reporting > should handle startup errors without exposing sensitive information 190ms
514
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Graceful Shutdown > should handle process signals gracefully 8ms
515
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Graceful Shutdown > should clean up resources on shutdown 8ms
516
+ ✓  integration:domain  src/tools/reconciliation/__tests__/executor.integration.test.ts > Reconciliation Executor - Bulk Create Integration > propagates API errors for invalid account IDs 199ms
517
+ stderr | src/tools/reconciliation/__tests__/executor.integration.test.ts > Reconciliation Executor - Bulk Create Integration > skips work when a rate limit error is detected
518
+ ⏭️ Skipping test due to YNAB API rate limit
519
+
520
+ ✓  integration:domain  src/tools/reconciliation/__tests__/executor.integration.test.ts > Reconciliation Executor - Bulk Create Integration > skips work when a rate limit error is detected 216ms
521
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should set and retrieve default budget using tools
522
+ Rate limit check for token_74700d80: 3/200 requests, remaining: 197, limited: false
523
+ [INFO] ynab:set_default_budget | SUCCESS | 379ms | rate_limit_remaining:197
524
+
525
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should set and retrieve default budget using tools
526
+ Rate limit check for token_74700d80: 3/200 requests, remaining: 197, limited: false
527
+
528
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should set and retrieve default budget using tools
529
+ Recorded request for token_74700d80: 4/200 requests
530
+
531
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should set and retrieve default budget using tools
532
+ Rate limit check for token_74700d80: 4/200 requests, remaining: 196, limited: false
533
+ [INFO] ynab:get_default_budget | SUCCESS | 1ms | rate_limit_remaining:196
534
+
535
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should provide diagnostic info with requested sections
536
+ Rate limit check for token_74700d80: 4/200 requests, remaining: 196, limited: false
537
+
538
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should provide diagnostic info with requested sections
539
+ Recorded request for token_74700d80: 5/200 requests
540
+
541
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should provide diagnostic info with requested sections
542
+ Rate limit check for token_74700d80: 5/200 requests, remaining: 195, limited: false
543
+ [INFO] ynab:diagnostic_info | SUCCESS | 7ms | rate_limit_remaining:195
544
+
545
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should clear cache using the clear_cache tool
546
+ Rate limit check for token_74700d80: 5/200 requests, remaining: 195, limited: false
547
+
548
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should clear cache using the clear_cache tool
549
+ Recorded request for token_74700d80: 6/200 requests
550
+
551
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should clear cache using the clear_cache tool
552
+ Rate limit check for token_74700d80: 6/200 requests, remaining: 194, limited: false
553
+ [INFO] ynab:clear_cache | SUCCESS | 1ms | rate_limit_remaining:194
554
+
555
+ stderr | src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Full Startup Workflow > should complete full startup sequence successfully
556
+ ✅ Server startup workflow completed successfully
557
+
558
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should include enhanced cache metrics in real diagnostic collection
559
+ Rate limit check for token_74700d80: 6/200 requests, remaining: 194, limited: false
560
+
561
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should include enhanced cache metrics in real diagnostic collection
562
+ Recorded request for token_74700d80: 7/200 requests
563
+
564
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should set and retrieve default budget using tools 490ms
565
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should provide diagnostic info with requested sections 18ms
566
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should clear cache using the clear_cache tool 11ms
567
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should track cache performance metrics during real tool execution 10ms
568
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should demonstrate LRU eviction with real cache operations 10ms
569
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should show cache hit rate improvement with repeated operations 9ms
570
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should handle concurrent cache operations correctly 9ms
571
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Full Startup Workflow > should complete full startup sequence successfully 381ms
572
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Full Startup Workflow > should fail fast on configuration errors 6ms
573
+ stderr | src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Full Startup Workflow > should fail fast on authentication errors
574
+ Server startup failed: Token validation failed: [object Object]
575
+
576
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should include enhanced cache metrics in real diagnostic collection
577
+ Rate limit check for token_74700d80: 7/200 requests, remaining: 193, limited: false
578
+ [INFO] ynab:list_budgets | SUCCESS | 187ms | rate_limit_remaining:193
579
+
580
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should include enhanced cache metrics in real diagnostic collection
581
+ Rate limit check for token_74700d80: 7/200 requests, remaining: 193, limited: false
582
+
583
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should include enhanced cache metrics in real diagnostic collection
584
+ Recorded request for token_74700d80: 8/200 requests
585
+
586
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Full Startup Workflow > should fail fast on authentication errors 190ms
587
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should include enhanced cache metrics in real diagnostic collection
588
+ Rate limit check for token_74700d80: 8/200 requests, remaining: 192, limited: false
589
+ [INFO] ynab:get_user | SUCCESS | 92ms | rate_limit_remaining:192
590
+
591
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should include enhanced cache metrics in real diagnostic collection
592
+ Rate limit check for token_74700d80: 8/200 requests, remaining: 192, limited: false
593
+
594
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should include enhanced cache metrics in real diagnostic collection
595
+ Recorded request for token_74700d80: 9/200 requests
596
+
597
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should include enhanced cache metrics in real diagnostic collection
598
+ Rate limit check for token_74700d80: 9/200 requests, remaining: 191, limited: false
599
+ [INFO] ynab:diagnostic_info | SUCCESS | 1ms | rate_limit_remaining:191
600
+
601
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should configure output formatter via set_output_format tool
602
+ Rate limit check for token_74700d80: 9/200 requests, remaining: 191, limited: false
603
+
604
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should configure output formatter via set_output_format tool
605
+ Recorded request for token_74700d80: 10/200 requests
606
+
607
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should configure output formatter via set_output_format tool
608
+ Rate limit check for token_74700d80: 10/200 requests, remaining: 190, limited: false
609
+ [INFO] ynab:set_output_format | SUCCESS | 2ms | rate_limit_remaining:190
610
+
611
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should configure output formatter via set_output_format tool
612
+ Rate limit check for token_74700d80: 10/200 requests, remaining: 190, limited: false
613
+
614
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should configure output formatter via set_output_format tool
615
+ Recorded request for token_74700d80: 11/200 requests
616
+
617
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should configure output formatter via set_output_format tool
618
+ Rate limit check for token_74700d80: 11/200 requests, remaining: 189, limited: false
619
+ [INFO] ynab:set_output_format | SUCCESS | 0ms | rate_limit_remaining:189
620
+
621
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should surface validation errors for invalid inputs
622
+ Rate limit check for token_74700d80: 11/200 requests, remaining: 189, limited: false
623
+ [ERROR] ynab:get_budget | FAILED | 1ms | rate_limit_remaining:189 | error:"Validation failed: Validation error: Invalid input: expected string, received undefined at "budget_id""
624
+
625
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Modular Architecture Integration with Real API > should maintain real API functionality after modular refactoring
626
+ Rate limit check for token_74700d80: 11/200 requests, remaining: 189, limited: false
627
+
628
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Modular Architecture Integration with Real API > should maintain real API functionality after modular refactoring
629
+ Recorded request for token_74700d80: 12/200 requests
630
+
631
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should include enhanced cache metrics in real diagnostic collection 290ms
632
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should configure output formatter via set_output_format tool 11ms
633
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should surface validation errors for invalid inputs 11ms
634
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Modular Architecture Integration with Real API > should maintain real API functionality after modular refactoring
635
+ Rate limit check for token_74700d80: 12/200 requests, remaining: 188, limited: false
636
+ [INFO] ynab:get_user | SUCCESS | 95ms | rate_limit_remaining:188
637
+
638
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Modular Architecture Integration with Real API > should maintain real API functionality after modular refactoring
639
+ Rate limit check for token_74700d80: 12/200 requests, remaining: 188, limited: false
640
+
641
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Modular Architecture Integration with Real API > should maintain real API functionality after modular refactoring
642
+ Recorded request for token_74700d80: 13/200 requests
643
+
644
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Modular Architecture Integration with Real API > should maintain real API functionality after modular refactoring
645
+ Rate limit check for token_74700d80: 13/200 requests, remaining: 187, limited: false
646
+ [INFO] ynab:list_budgets | SUCCESS | 0ms | rate_limit_remaining:187
647
+
648
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Modular Architecture Integration with Real API > should maintain real API functionality after modular refactoring
649
+ Rate limit check for token_74700d80: 13/200 requests, remaining: 187, limited: false
650
+
651
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Modular Architecture Integration with Real API > should maintain real API functionality after modular refactoring
652
+ Recorded request for token_74700d80: 14/200 requests
653
+
654
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Modular Architecture Integration with Real API > should maintain real API functionality after modular refactoring
655
+ Rate limit check for token_74700d80: 14/200 requests, remaining: 186, limited: false
656
+ [INFO] ynab:diagnostic_info | SUCCESS | 1ms | rate_limit_remaining:186
657
+
658
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Modular Architecture Integration with Real API > should handle modular service errors gracefully in integration
659
+ Rate limit check for token_74700d80: 14/200 requests, remaining: 186, limited: false
660
+ [ERROR] ynab:get_budget | FAILED | 0ms | rate_limit_remaining:186 | error:"Validation failed: Validation error: Invalid input: expected string, received undefined at "budget_id""
661
+
662
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should complete end-to-end workflow with real YNAB API after setting default budget
663
+ Rate limit check for token_74700d80: 14/200 requests, remaining: 186, limited: false
664
+
665
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should complete end-to-end workflow with real YNAB API after setting default budget
666
+ Recorded request for token_74700d80: 15/200 requests
667
+
668
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should complete end-to-end workflow with real YNAB API after setting default budget
669
+ Rate limit check for token_74700d80: 15/200 requests, remaining: 185, limited: false
670
+ [INFO] ynab:list_budgets | SUCCESS | 0ms | rate_limit_remaining:185
671
+
672
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should complete end-to-end workflow with real YNAB API after setting default budget
673
+ Rate limit check for token_74700d80: 15/200 requests, remaining: 185, limited: false
674
+
675
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should complete end-to-end workflow with real YNAB API after setting default budget
676
+ Recorded request for token_74700d80: 16/200 requests
677
+
678
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Modular Architecture Integration with Real API > should maintain real API functionality after modular refactoring 107ms
679
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Modular Architecture Integration with Real API > should handle modular service errors gracefully in integration 6ms
680
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should handle real YNAB API calls with budget resolution errors 6ms
681
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should handle real YNAB API calls with invalid budget ID 8ms
682
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should complete end-to-end workflow with real YNAB API after setting default budget
683
+ Rate limit check for token_74700d80: 16/200 requests, remaining: 184, limited: false
684
+ [INFO] ynab:set_default_budget | SUCCESS | 386ms | rate_limit_remaining:184
685
+
686
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should complete end-to-end workflow with real YNAB API after setting default budget
687
+ Rate limit check for token_74700d80: 16/200 requests, remaining: 184, limited: false
688
+
689
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should complete end-to-end workflow with real YNAB API after setting default budget
690
+ Recorded request for token_74700d80: 17/200 requests
691
+
692
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should complete end-to-end workflow with real YNAB API after setting default budget
693
+ Rate limit check for token_74700d80: 17/200 requests, remaining: 183, limited: false
694
+ [INFO] ynab:list_accounts | SUCCESS | 6ms | rate_limit_remaining:183
695
+
696
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should handle real API errors properly with budget resolution
697
+ Rate limit check for token_74700d80: 17/200 requests, remaining: 183, limited: false
698
+
699
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should handle real API errors properly with budget resolution
700
+ Recorded request for token_74700d80: 18/200 requests
701
+
702
+ ↓  integration:domain  src/tools/reconciliation/__tests__/reconciliation.delta.integration.test.ts > Reconciliation delta isolation > uses full-fetch helpers and exposes audit metadata
703
+ ↓  integration:domain  src/tools/reconciliation/__tests__/reconciliation.delta.integration.test.ts > Reconciliation delta isolation > can opt into delta-backed fetches when force_full_refresh is false
704
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should handle real API errors properly with budget resolution
705
+ Rate limit check for token_74700d80: 18/200 requests, remaining: 182, limited: false
706
+ [INFO] ynab:list_accounts | SUCCESS | 97ms | rate_limit_remaining:182
707
+
708
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should handle real API errors properly with budget resolution
709
+ ⏭️ Skipping test due to YNAB API rate limit
710
+
711
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should complete end-to-end workflow with real YNAB API after setting default budget 402ms
712
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should maintain performance with real API calls and budget resolution
713
+ Rate limit check for token_74700d80: 18/200 requests, remaining: 182, limited: false
714
+
715
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should maintain performance with real API calls and budget resolution
716
+ Recorded request for token_74700d80: 19/200 requests
717
+
718
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should maintain performance with real API calls and budget resolution
719
+ Rate limit check for token_74700d80: 19/200 requests, remaining: 181, limited: false
720
+ [INFO] ynab:list_budgets | SUCCESS | 1ms | rate_limit_remaining:181
721
+
722
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should maintain performance with real API calls and budget resolution
723
+ Rate limit check for token_74700d80: 19/200 requests, remaining: 181, limited: false
724
+
725
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should maintain performance with real API calls and budget resolution
726
+ Recorded request for token_74700d80: 20/200 requests
727
+
728
+ ↓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should handle real API errors properly with budget resolution 106ms
729
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should maintain performance with real API calls and budget resolution
730
+ Rate limit check for token_74700d80: 20/200 requests, remaining: 180, limited: false
731
+ [INFO] ynab:set_default_budget | SUCCESS | 373ms | rate_limit_remaining:180
732
+
733
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should maintain performance with real API calls and budget resolution
734
+ Rate limit check for token_74700d80: 20/200 requests, remaining: 180, limited: false
735
+ Rate limit check for token_74700d80: 20/200 requests, remaining: 180, limited: false
736
+ Rate limit check for token_74700d80: 20/200 requests, remaining: 180, limited: false
737
+ Recorded request for token_74700d80: 21/200 requests
738
+ Recorded request for token_74700d80: 22/200 requests
739
+ Recorded request for token_74700d80: 23/200 requests
740
+
741
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should maintain performance with real API calls and budget resolution
742
+ Rate limit check for token_74700d80: 23/200 requests, remaining: 177, limited: false
743
+ [INFO] ynab:list_accounts | SUCCESS | 18ms | rate_limit_remaining:177
744
+ Rate limit check for token_74700d80: 23/200 requests, remaining: 177, limited: false
745
+ [INFO] ynab:list_categories | SUCCESS | 18ms | rate_limit_remaining:177
746
+ Rate limit check for token_74700d80: 23/200 requests, remaining: 177, limited: false
747
+ [INFO] ynab:list_payees | SUCCESS | 18ms | rate_limit_remaining:177
748
+
749
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should maintain performance with real API calls and budget resolution 402ms
750
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should handle security middleware with budget resolution errors 7ms
751
+
752
+  Test Files  12 passed | 11 skipped (23)
753
+  Tests  134 passed | 50 skipped (188)
754
+  Start at  22:18:30
755
+  Duration  10.33s (transform 4.32s, setup 0ms, collect 58.66s, tests 10.30s, environment 19ms, prepare 7.39s)
756
+
757
+
758
+ 📊 Test results written to test-results/
759
+ - summary.json (overview)
760
+ - *-tests.json (1 project file(s))
761
+ - passed-tests-summary.json
762
+ - index.html (interactive report)
763
+
764
+ 💡 test-results.json contains a pointer to the detailed results
765
+  HTML  Report is generated
766
+  You can run npx vite preview --outDir test-results to see the test results.