@dizzlkheinz/ynab-mcpb 0.16.0 → 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 (114) 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 +131 -51
  30. package/NUL +0 -1
  31. package/README.md +27 -14
  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 +129 -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__/transactionTools.test.ts +90 -17
  68. package/src/tools/__tests__/utilityTools.test.ts +7 -7
  69. package/src/tools/accountTools.ts +53 -0
  70. package/src/tools/adapters.ts +74 -0
  71. package/src/tools/budgetTools.ts +37 -0
  72. package/src/tools/categoryTools.ts +53 -0
  73. package/src/tools/monthTools.ts +39 -0
  74. package/src/tools/payeeTools.ts +39 -0
  75. package/src/tools/reconciliation/index.ts +45 -0
  76. package/src/tools/schemas/common.ts +18 -0
  77. package/src/tools/transactionTools.ts +150 -0
  78. package/src/tools/utilityTools.ts +42 -2
  79. package/src/types/index.ts +3 -0
  80. package/src/types/toolRegistration.ts +88 -0
  81. package/.dxtignore +0 -57
  82. package/.github/workflows/pr-description-check.yml +0 -88
  83. package/CODEREVIEW_RESPONSE.md +0 -128
  84. package/SCHEMA_IMPROVEMENT_SUMMARY.md +0 -120
  85. package/TESTING_NOTES.md +0 -217
  86. package/accountactivity-merged.csv +0 -149
  87. package/bundle-analysis.html +0 -13110
  88. package/docs/README.md +0 -72
  89. package/docs/getting-started/CONFIGURATION.md +0 -175
  90. package/docs/getting-started/INSTALLATION.md +0 -333
  91. package/docs/getting-started/QUICKSTART.md +0 -282
  92. package/docs/guides/ARCHITECTURE.md +0 -533
  93. package/docs/guides/DEPLOYMENT.md +0 -189
  94. package/docs/guides/INTEGRATION_TESTING.md +0 -730
  95. package/docs/guides/TESTING.md +0 -591
  96. package/docs/plans/2025-11-20-reloadable-config-token-validation.md +0 -93
  97. package/docs/plans/2025-11-21-fix-transaction-cached-property.md +0 -362
  98. package/docs/plans/2025-11-21-reconciliation-error-handling.md +0 -90
  99. package/docs/plans/2025-11-21-v014-hardening.md +0 -153
  100. package/docs/plans/reconciliation-v2-redesign.md +0 -1571
  101. package/docs/reconciliation-flow.md +0 -83
  102. package/docs/reference/EXAMPLES.md +0 -946
  103. package/docs/reference/TOOLS.md +0 -348
  104. package/docs/reference/TROUBLESHOOTING.md +0 -481
  105. package/fix-types.sh +0 -17
  106. package/test-csv-sample.csv +0 -28
  107. package/test-exports/sample_bank_statement.csv +0 -7
  108. package/test-reconcile-autodetect.js +0 -40
  109. package/test-reconcile-tool.js +0 -152
  110. package/test-reconcile-with-csv.cjs +0 -89
  111. package/test-statement.csv +0 -8
  112. package/test_debug.js +0 -47
  113. package/test_mcp_tools.mjs +0 -75
  114. package/test_simple.mjs +0 -16
@@ -0,0 +1,781 @@
1
+
2
+ > @dizzlkheinz/ynab-mcpb@0.16.2 test:integration:payees
3
+ > node scripts/run-domain-integration-tests.js payees
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 | 0ms | 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 | 1ms | 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 | 0ms | 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 | 0ms | rate_limit_remaining:0
42
+ [WARN] Rate limit exceeded for ynab:performance_test
43
+ [INFO] ynab:performance_test:performance test | SUCCESS | 0ms | 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 6ms
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 5ms
51
+ ✓  integration:domain  src/server/__tests__/security.integration.test.ts > Security Integration > end-to-end security flow > should provide comprehensive security statistics 8ms
52
+ ✓  integration:domain  src/server/__tests__/security.integration.test.ts > Security Integration > performance under load > should handle rapid requests efficiently 2ms
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 62ms
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 15ms
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 3ms
63
+ ✓  integration:domain  src/__tests__/tools/reconciliation/csvParser.integration.test.ts > CSV Parser Integration Tests > European Number Format > should handle European number format 77ms
64
+ ✓  integration:domain  src/__tests__/tools/reconciliation/csvParser.integration.test.ts > Matcher Integration Tests > should achieve high confidence matches with exact integer comparison 11ms
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 48ms
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 8ms
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 4ms
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 3ms
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 13ms
73
+ ✓  integration:domain  src/tools/reconciliation/__tests__/recommendationEngine.integration.test.ts > Recommendation Engine Integration > complex scenarios > should handle repeat amounts with recommendations 4ms
74
+ ✓  integration:domain  src/tools/reconciliation/__tests__/recommendationEngine.integration.test.ts > Recommendation Engine Integration > complex scenarios > should generate mixed recommendation types for complex scenario 12ms
75
+ ✓  integration:domain  src/tools/reconciliation/__tests__/recommendationEngine.integration.test.ts > Recommendation Engine Integration > complex scenarios > should prioritize recommendations by priority and confidence 4ms
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 5ms
78
+ ✓  integration:domain  src/tools/reconciliation/__tests__/recommendationEngine.integration.test.ts > Recommendation Engine Integration > recommendation field validation > should generate valid create_transaction parameters 3ms
79
+ ✓  integration:domain  src/server/__tests__/errorHandler.integration.test.ts > Error Handler Integration Tests > 401 Unauthorized Errors > should handle 401 errors in budget tools 13ms
80
+ ✓  integration:domain  src/server/__tests__/errorHandler.integration.test.ts > Error Handler Integration Tests > 401 Unauthorized Errors > should handle 401 errors in account tools 2ms
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 2ms
88
+ ✓  integration:domain  src/server/__tests__/errorHandler.integration.test.ts > Error Handler Integration Tests > Network and Connection Errors > should handle connection refused errors 2ms
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 9ms
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 1ms
91
+ ✓  integration:domain  src/server/__tests__/errorHandler.integration.test.ts > Error Handler Integration Tests > ErrorHandler with real ResponseFormatter > should format errors using real responseFormatter 2ms
92
+ ✓  integration:domain  src/server/__tests__/errorHandler.integration.test.ts > Error Handler Integration Tests > ErrorHandler with real ResponseFormatter > should work with ValidationError 1ms
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 2ms
96
+ ✓  integration:domain  src/server/__tests__/errorHandler.integration.test.ts > Error Handler Integration Tests > Static vs instance consistency > should produce identical results for createValidationError 1ms
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 4ms
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__/monthTools.integration.test.ts > Month Tools Integration > handleListMonths > should successfully list months from real API
120
+ ↓  integration:domain  src/tools/__tests__/monthTools.integration.test.ts > Month Tools Integration > handleListMonths > should handle invalid budget ID gracefully
121
+ ↓  integration:domain  src/tools/__tests__/monthTools.integration.test.ts > Month Tools Integration > handleGetMonth > should successfully get month details from real API
122
+ ↓  integration:domain  src/tools/__tests__/monthTools.integration.test.ts > Month Tools Integration > handleGetMonth > should handle invalid budget ID gracefully
123
+ ↓  integration:domain  src/tools/__tests__/monthTools.integration.test.ts > Month Tools Integration > handleGetMonth > should handle invalid month format gracefully
124
+ ↓  integration:domain  src/tools/__tests__/payeeTools.delta.integration.test.ts > Delta-backed payee tool handler > serves cached payee results on the second invocation
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
+ ↓  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > should successfully list transactions from real API
131
+ ↓  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > should successfully list transactions with account filter
132
+ ↓  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > should successfully list transactions with date filter
133
+ ↓  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > should get transaction details if transactions exist
134
+ ↓  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > should handle invalid budget ID gracefully
135
+ ↓  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > should handle invalid transaction ID gracefully
136
+ ↓  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > handleCreateTransactions - Integration > should create two transactions via the bulk handler
137
+ ↓  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > handleCreateTransactions - Integration > should detect duplicates when reusing import IDs
138
+ ↓  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > handleCreateTransactions - Integration > should invalidate caches so new transactions appear in list results
139
+ ↓  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > handleCreateTransactions - Integration > should create transactions across multiple accounts within one batch
140
+ ↓  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > handleCreateTransactions - Integration > should handle large batches and report response mode
141
+ ↓  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > handleCreateTransactions - Integration > should support dry run mode without creating transactions
142
+ ↓  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > handleCreateTransactions - Integration > should confirm dry run does not persist data
143
+ ↓  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > handleCreateTransactions - Integration > should handle invalid budget IDs gracefully during bulk create
144
+ ↓  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > handleCreateTransactions - Integration > should handle invalid account IDs during bulk create
145
+ ↓  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > handleCreateTransactions - Integration > documents rate limiting behavior for bulk requests
146
+ ·  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > Bulk Update Transactions Integration > should successfully update multiple transactions with provided metadata
147
+ ·  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)
148
+ ·  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
149
+ ·  integration:domain  src/tools/__tests__/transactionTools.integration.test.ts > Transaction Tools Integration > Bulk Update Transactions Integration > should handle partial failures gracefully
150
+ 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
151
+ Rate limit check for token_7f8358f9: 0/200 requests, remaining: 200, limited: false
152
+
153
+ 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
154
+ Recorded request for token_7f8358f9: 1/200 requests
155
+
156
+ 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
157
+ Rate limit check for token_7f8358f9: 1/200 requests, remaining: 199, limited: false
158
+ [INFO] ynab:list_budgets | SUCCESS | 10ms | rate_limit_remaining:199
159
+
160
+ 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
161
+ Rate limit check for token_7f8358f9: 1/200 requests, remaining: 199, limited: false
162
+
163
+ 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
164
+ Recorded request for token_7f8358f9: 2/200 requests
165
+
166
+ 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
167
+ Rate limit check for token_7f8358f9: 2/200 requests, remaining: 198, limited: false
168
+ [INFO] ynab:get_budget | SUCCESS | 2ms | rate_limit_remaining:198
169
+
170
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Budget Management Integration > should handle budget retrieval errors gracefully
171
+ Rate limit check for token_7f8358f9: 2/200 requests, remaining: 198, limited: false
172
+
173
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Budget Management Integration > should handle budget retrieval errors gracefully
174
+ Recorded request for token_7f8358f9: 3/200 requests
175
+
176
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Budget Management Integration > should handle budget retrieval errors gracefully
177
+ Rate limit check for token_7f8358f9: 3/200 requests, remaining: 197, limited: false
178
+ [INFO] ynab:get_budget | SUCCESS | 5ms | rate_limit_remaining:197
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: 3/200 requests, remaining: 197, 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: 4/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: 4/200 requests, remaining: 196, limited: false
188
+ [INFO] ynab:list_accounts | SUCCESS | 4ms | rate_limit_remaining:196
189
+
190
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Account Management Integration > should handle complete account workflow
191
+ Rate limit check for token_7f8358f9: 4/200 requests, remaining: 196, limited: false
192
+
193
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Account Management Integration > should handle complete account workflow
194
+ Recorded request for token_7f8358f9: 5/200 requests
195
+
196
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Account Management Integration > should handle complete account workflow
197
+ Rate limit check for token_7f8358f9: 5/200 requests, remaining: 195, limited: false
198
+ [INFO] ynab:get_account | SUCCESS | 3ms | rate_limit_remaining:195
199
+
200
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Account Management Integration > should handle complete account workflow
201
+ Rate limit check for token_7f8358f9: 5/200 requests, remaining: 195, limited: false
202
+
203
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Account Management Integration > should handle complete account workflow
204
+ Recorded request for token_7f8358f9: 6/200 requests
205
+
206
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Account Management Integration > should handle complete account workflow
207
+ Rate limit check for token_7f8358f9: 6/200 requests, remaining: 194, limited: false
208
+ [INFO] ynab:create_account | SUCCESS | 2ms | rate_limit_remaining:194
209
+
210
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Transaction Management Integration > should handle transaction filtering
211
+ Rate limit check for token_7f8358f9: 6/200 requests, remaining: 194, limited: false
212
+
213
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Transaction Management Integration > should handle transaction filtering
214
+ Recorded request for token_7f8358f9: 7/200 requests
215
+
216
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Transaction Management Integration > should handle transaction filtering
217
+ Rate limit check for token_7f8358f9: 7/200 requests, remaining: 193, limited: false
218
+ [INFO] ynab:list_transactions | SUCCESS | 3ms | rate_limit_remaining:193
219
+
220
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Transaction Management Integration > should handle transaction filtering
221
+ Rate limit check for token_7f8358f9: 7/200 requests, remaining: 193, limited: false
222
+
223
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Transaction Management Integration > should handle transaction filtering
224
+ Recorded request for token_7f8358f9: 8/200 requests
225
+
226
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Transaction Management Integration > should handle transaction filtering
227
+ Rate limit check for token_7f8358f9: 8/200 requests, remaining: 192, limited: false
228
+ [INFO] ynab:list_transactions | SUCCESS | 1ms | rate_limit_remaining:192
229
+
230
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Transaction Management Integration > should handle transaction filtering
231
+ Rate limit check for token_7f8358f9: 8/200 requests, remaining: 192, limited: false
232
+
233
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Transaction Management Integration > should handle transaction filtering
234
+ Recorded request for token_7f8358f9: 9/200 requests
235
+
236
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Transaction Management Integration > should handle transaction filtering
237
+ Rate limit check for token_7f8358f9: 9/200 requests, remaining: 191, limited: false
238
+ [INFO] ynab:list_transactions | SUCCESS | 1ms | rate_limit_remaining:191
239
+
240
+ ✓  integration:domain  src/__tests__/comprehensive.integration.test.ts > YNAB utils mock > converts milliunits using SDK rounding rules 4ms
241
+ ✓  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 45ms
242
+ ✓  integration:domain  src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Budget Management Integration > should handle budget retrieval errors gracefully 12ms
243
+ ✓  integration:domain  src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Account Management Integration > should handle complete account workflow 21ms
244
+ ↓  integration:domain  src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Transaction Management Integration > should handle complete transaction workflow
245
+ ✓  integration:domain  src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Transaction Management Integration > should handle transaction filtering 11ms
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: 9/200 requests, remaining: 191, limited: false
248
+
249
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Category Management Integration > should handle complete category workflow
250
+ Recorded request for token_7f8358f9: 10/200 requests
251
+
252
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Category Management Integration > should handle complete category workflow
253
+ Rate limit check for token_7f8358f9: 10/200 requests, remaining: 190, limited: false
254
+ [INFO] ynab:list_categories | SUCCESS | 7ms | rate_limit_remaining:190
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: 10/200 requests, remaining: 190, limited: false
258
+
259
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Category Management Integration > should handle complete category workflow
260
+ Recorded request for token_7f8358f9: 11/200 requests
261
+
262
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Category Management Integration > should handle complete category workflow
263
+ Rate limit check for token_7f8358f9: 11/200 requests, remaining: 189, limited: false
264
+ [INFO] ynab:get_category | SUCCESS | 3ms | rate_limit_remaining:189
265
+
266
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Category Management Integration > should handle complete category workflow
267
+ Rate limit check for token_7f8358f9: 11/200 requests, remaining: 189, limited: false
268
+
269
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Category Management Integration > should handle complete category workflow
270
+ Recorded request for token_7f8358f9: 12/200 requests
271
+
272
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Category Management Integration > should handle complete category workflow
273
+ Rate limit check for token_7f8358f9: 12/200 requests, remaining: 188, limited: false
274
+ [INFO] ynab:update_category | SUCCESS | 3ms | rate_limit_remaining:188
275
+
276
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Server Initialization > should successfully initialize server with valid configuration 30ms
277
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Server Initialization > should fail initialization with missing access token 12ms
278
+ ✓  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 6ms
279
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Utility Tools Integration > should handle user information retrieval
280
+ Rate limit check for token_7f8358f9: 12/200 requests, remaining: 188, limited: false
281
+
282
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Utility Tools Integration > should handle user information retrieval
283
+ Recorded request for token_7f8358f9: 13/200 requests
284
+
285
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Utility Tools Integration > should handle user information retrieval
286
+ Rate limit check for token_7f8358f9: 13/200 requests, remaining: 187, limited: false
287
+ [INFO] ynab:get_user | SUCCESS | 2ms | rate_limit_remaining:187
288
+
289
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Utility Tools Integration > should handle amount conversion
290
+ Rate limit check for token_7f8358f9: 13/200 requests, remaining: 187, limited: false
291
+
292
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Utility Tools Integration > should handle amount conversion
293
+ Recorded request for token_7f8358f9: 14/200 requests
294
+
295
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Utility Tools Integration > should handle amount conversion
296
+ Rate limit check for token_7f8358f9: 14/200 requests, remaining: 186, limited: false
297
+ [INFO] ynab:convert_amount | SUCCESS | 2ms | rate_limit_remaining:186
298
+
299
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Utility Tools Integration > should handle amount conversion
300
+ Rate limit check for token_7f8358f9: 14/200 requests, remaining: 186, limited: false
301
+
302
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Utility Tools Integration > should handle amount conversion
303
+ Recorded request for token_7f8358f9: 15/200 requests
304
+
305
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Utility Tools Integration > should handle amount conversion
306
+ Rate limit check for token_7f8358f9: 15/200 requests, remaining: 185, limited: false
307
+ [INFO] ynab:convert_amount | SUCCESS | 0ms | rate_limit_remaining:185
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: 15/200 requests, remaining: 185, limited: false
311
+
312
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Error Handling Integration > should handle various API error scenarios
313
+ Recorded request for token_7f8358f9: 16/200 requests
314
+
315
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Error Handling Integration > should handle various API error scenarios
316
+ Rate limit check for token_7f8358f9: 16/200 requests, remaining: 184, limited: false
317
+ [INFO] ynab:list_budgets | SUCCESS | 0ms | rate_limit_remaining:184
318
+
319
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Error Handling Integration > should handle various API error scenarios
320
+ Rate limit check for token_7f8358f9: 16/200 requests, remaining: 184, limited: false
321
+
322
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Error Handling Integration > should handle various API error scenarios
323
+ Recorded request for token_7f8358f9: 17/200 requests
324
+
325
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Error Handling Integration > should handle various API error scenarios
326
+ Rate limit check for token_7f8358f9: 17/200 requests, remaining: 183, limited: false
327
+ [INFO] ynab:get_budget | SUCCESS | 1ms | rate_limit_remaining:183
328
+
329
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Constructor and Environment Validation > should create server instance with valid access token 28ms
330
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Constructor and Environment Validation > should throw ValidationError when YNAB_ACCESS_TOKEN is missing 13ms
331
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Constructor and Environment Validation > should throw ValidationError when YNAB_ACCESS_TOKEN is empty string 9ms
332
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Constructor and Environment Validation > should throw ValidationError when YNAB_ACCESS_TOKEN is only whitespace 8ms
333
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Constructor and Environment Validation > should trim whitespace from access token 12ms
334
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Error Handling Integration > should validate input parameters
335
+ Rate limit check for token_7f8358f9: 17/200 requests, remaining: 183, limited: false
336
+ [ERROR] ynab:get_budget | FAILED | 1ms | rate_limit_remaining:183 | error:"Validation failed: Validation error: Invalid input: expected string, received undefined at "budget_id""
337
+
338
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should invalidate cache on write operations
339
+ Rate limit check for token_7f8358f9: 17/200 requests, remaining: 183, limited: false
340
+
341
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should invalidate cache on write operations
342
+ Recorded request for token_7f8358f9: 18/200 requests
343
+
344
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should invalidate cache on write operations
345
+ Rate limit check for token_7f8358f9: 18/200 requests, remaining: 182, limited: false
346
+ [INFO] ynab:list_accounts | SUCCESS | 1ms | rate_limit_remaining:182
347
+
348
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should invalidate cache on write operations
349
+ Rate limit check for token_7f8358f9: 18/200 requests, remaining: 182, limited: false
350
+
351
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should invalidate cache on write operations
352
+ Recorded request for token_7f8358f9: 19/200 requests
353
+
354
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should invalidate cache on write operations
355
+ Rate limit check for token_7f8358f9: 19/200 requests, remaining: 181, limited: false
356
+ [INFO] ynab:create_account | SUCCESS | 0ms | rate_limit_remaining:181
357
+
358
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should invalidate cache on write operations
359
+ Rate limit check for token_7f8358f9: 19/200 requests, remaining: 181, limited: false
360
+
361
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should invalidate cache on write operations
362
+ Recorded request for token_7f8358f9: 20/200 requests
363
+
364
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should invalidate cache on write operations
365
+ Rate limit check for token_7f8358f9: 20/200 requests, remaining: 180, limited: false
366
+ [INFO] ynab:list_accounts | SUCCESS | 0ms | rate_limit_remaining:180
367
+
368
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should handle cache warming after setting default budget
369
+ Rate limit check for token_7f8358f9: 20/200 requests, remaining: 180, limited: false
370
+
371
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should handle cache warming after setting default budget
372
+ Recorded request for token_7f8358f9: 21/200 requests
373
+
374
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should handle cache warming after setting default budget
375
+ Rate limit check for token_7f8358f9: 21/200 requests, remaining: 179, limited: false
376
+ [INFO] ynab:set_default_budget | SUCCESS | 2ms | rate_limit_remaining:179
377
+
378
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should handle cache clear operation
379
+ Rate limit check for token_7f8358f9: 21/200 requests, remaining: 179, limited: false
380
+
381
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should handle cache clear operation
382
+ Recorded request for token_7f8358f9: 22/200 requests
383
+
384
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should handle cache clear operation
385
+ Rate limit check for token_7f8358f9: 22/200 requests, remaining: 178, limited: false
386
+ [INFO] ynab:list_budgets | SUCCESS | 0ms | rate_limit_remaining:178
387
+
388
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should handle cache clear operation
389
+ Rate limit check for token_7f8358f9: 22/200 requests, remaining: 178, limited: false
390
+
391
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should handle cache clear operation
392
+ Recorded request for token_7f8358f9: 23/200 requests
393
+
394
+ stderr | src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should handle cache clear operation
395
+ Rate limit check for token_7f8358f9: 23/200 requests, remaining: 177, limited: false
396
+ [INFO] ynab:clear_cache | SUCCESS | 0ms | rate_limit_remaining:177
397
+
398
+ ✓  integration:domain  src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Category Management Integration > should handle complete category workflow 22ms
399
+ ✓  integration:domain  src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Utility Tools Integration > should handle user information retrieval 8ms
400
+ ✓  integration:domain  src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Complete Utility Tools Integration > should handle amount conversion 8ms
401
+ ✓  integration:domain  src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Error Handling Integration > should handle various API error scenarios 7ms
402
+ ✓  integration:domain  src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Error Handling Integration > should validate input parameters 8ms
403
+ ↓  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
404
+ ✓  integration:domain  src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should invalidate cache on write operations 10ms
405
+ ↓  integration:domain  src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should not cache filtered transaction requests
406
+ ✓  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 10ms
407
+ ✓  integration:domain  src/__tests__/comprehensive.integration.test.ts > YNAB MCP Server - Comprehensive Integration Tests > Caching Integration Tests > should handle cache clear operation 6ms
408
+ ↓  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
409
+ ↓  integration:domain  src/tools/reconciliation/__tests__/reconciliation.delta.integration.test.ts > Reconciliation delta isolation > uses full-fetch helpers and exposes audit metadata
410
+ ↓  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
411
+ ✓  integration:domain  src/tools/__tests__/utilityTools.integration.test.ts > Utility Tools Integration Tests > handleGetUser > should retrieve user information from YNAB API 388ms
412
+ ✓  integration:domain  src/tools/__tests__/utilityTools.integration.test.ts > Utility Tools Integration Tests > handleConvertAmount > should convert various dollar amounts to milliunits 2ms
413
+ ✓  integration:domain  src/tools/__tests__/utilityTools.integration.test.ts > Utility Tools Integration Tests > handleConvertAmount > should convert various milliunit amounts to dollars 2ms
414
+ ✓  integration:domain  src/tools/__tests__/utilityTools.integration.test.ts > Utility Tools Integration Tests > handleConvertAmount > should handle precision edge cases 1ms
415
+ ✓  integration:domain  src/tools/__tests__/budgetTools.delta.integration.test.ts > Delta-backed budget tool handler > serves cached budget summaries on the second invocation 378ms
416
+ stderr | src/tools/__tests__/budgetTools.integration.test.ts > Budget Tools Integration > handleListBudgets > should successfully list budgets from real API
417
+ ✅ Successfully listed 7 budgets
418
+
419
+ ✓  integration:domain  src/tools/__tests__/budgetTools.integration.test.ts > Budget Tools Integration > handleListBudgets > should successfully list budgets from real API 365ms
420
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Server Startup Validation > should validate YNAB token during startup 363ms
421
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Real YNAB API Integration > should successfully validate real YNAB token 356ms
422
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Real YNAB API Integration > should successfully get user information
423
+ ✅ Connected to YNAB user: 495de152-d100-4404-a9b4-d6115e038294
424
+
425
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Real YNAB API Integration > should successfully get user information 144ms
426
+ ✓  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 166ms
427
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Real YNAB API Integration > should successfully get budgets
428
+ ✅ Found 7 budget(s)
429
+ - test plan (7b47d8bb-ce4c-40c0-a9eb-c6d715af9a76)
430
+ - 8 Laguna (65b65f40-da07-4037-af17-d6559b9145af)
431
+ - going to mexico (Archived on 2025-01-24) (b371d9f6-94fd-48a1-9b19-f51ab17436f1)
432
+ - 2025 (bf00f94f-f532-4b2c-a39c-e8d9a963effd)
433
+ - 1376 W 14th (9e4e96bf-f857-4c84-9f07-1e201de1bd40)
434
+ - SRC (6d225b60-eaf5-4157-bd7a-9995b3e1b608)
435
+ - KYS (c402250b-c77e-4739-a1c4-d087d02693d5)
436
+
437
+ stderr | src/tools/__tests__/budgetTools.integration.test.ts > Budget Tools Integration > handleGetBudget > should successfully get budget details from real API
438
+ ✅ Successfully retrieved budget: test plan
439
+ - 320 accounts
440
+ - 65 categories
441
+
442
+ ✓  integration:domain  src/tools/__tests__/budgetTools.integration.test.ts > Budget Tools Integration > handleGetBudget > should successfully get budget details from real API 388ms
443
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Real YNAB API Integration > should successfully get budgets 187ms
444
+ stderr | src/tools/__tests__/budgetTools.integration.test.ts > Budget Tools Integration > handleGetBudget > should handle invalid budget ID gracefully
445
+ ✅ Correctly handled invalid budget ID: Budget not found
446
+
447
+ ✓  integration:domain  src/tools/__tests__/budgetTools.integration.test.ts > Budget Tools Integration > handleGetBudget > should handle invalid budget ID gracefully 99ms
448
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Real YNAB API Integration > should handle invalid token gracefully 100ms
449
+ ✓  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 277ms
450
+ ✓  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 10ms
451
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Tool Registration > should register all expected YNAB tools 9ms
452
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Tool Registration > should register budget management tools 8ms
453
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Tool Registration > should register account management tools 8ms
454
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Tool Registration > should register transaction management tools 10ms
455
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Tool Registration > should register category management tools 10ms
456
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Tool Registration > should register payee management tools 9ms
457
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Tool Registration > should register utility tools 9ms
458
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Real YNAB API Integration > should successfully start and connect MCP server 197ms
459
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Transport Setup > should attempt to connect with StdioServerTransport 198ms
460
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should execute get_user tool via the registry
461
+ Rate limit check for token_74700d80: 0/200 requests, remaining: 200, limited: false
462
+
463
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should execute get_user tool via the registry
464
+ Recorded request for token_74700d80: 1/200 requests
465
+
466
+ ✓  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
467
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should expose registered tools via the registry 27ms
468
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should execute get_user tool via the registry
469
+ Rate limit check for token_74700d80: 1/200 requests, remaining: 199, limited: false
470
+ [INFO] ynab:get_user | SUCCESS | 96ms | rate_limit_remaining:199
471
+
472
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Transport Setup > should handle transport connection errors gracefully 102ms
473
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should set and retrieve default budget using tools
474
+ Rate limit check for token_74700d80: 1/200 requests, remaining: 199, limited: false
475
+
476
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should set and retrieve default budget using tools
477
+ Recorded request for token_74700d80: 2/200 requests
478
+
479
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should execute get_user tool via the registry 107ms
480
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Transport Setup > should validate token before attempting transport connection 106ms
481
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Error Reporting > should report configuration errors clearly 7ms
482
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should set and retrieve default budget using tools
483
+ Rate limit check for token_74700d80: 2/200 requests, remaining: 198, limited: false
484
+ [INFO] ynab:list_budgets | SUCCESS | 99ms | rate_limit_remaining:198
485
+
486
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should set and retrieve default budget using tools
487
+ Rate limit check for token_74700d80: 2/200 requests, remaining: 198, limited: false
488
+
489
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should set and retrieve default budget using tools
490
+ Recorded request for token_74700d80: 3/200 requests
491
+
492
+ stderr | src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Error Reporting > should handle startup errors without exposing sensitive information
493
+ Server startup failed: Token validation failed: [object Object]
494
+
495
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Error Reporting > should report authentication errors clearly 97ms
496
+ stderr | src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Error Reporting > should handle startup errors without exposing sensitive information
497
+ Server startup failed: Token validation failed: [object Object]
498
+
499
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should set and retrieve default budget using tools
500
+ Rate limit check for token_74700d80: 3/200 requests, remaining: 197, limited: false
501
+ [INFO] ynab:set_default_budget | SUCCESS | 308ms | rate_limit_remaining:197
502
+
503
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should set and retrieve default budget using tools
504
+ Rate limit check for token_74700d80: 3/200 requests, remaining: 197, limited: false
505
+
506
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should set and retrieve default budget using tools
507
+ Recorded request for token_74700d80: 4/200 requests
508
+
509
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should set and retrieve default budget using tools
510
+ Rate limit check for token_74700d80: 4/200 requests, remaining: 196, limited: false
511
+ [INFO] ynab:get_default_budget | SUCCESS | 1ms | rate_limit_remaining:196
512
+
513
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should provide diagnostic info with requested sections
514
+ Rate limit check for token_74700d80: 4/200 requests, remaining: 196, limited: false
515
+
516
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should provide diagnostic info with requested sections
517
+ Recorded request for token_74700d80: 5/200 requests
518
+
519
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should provide diagnostic info with requested sections
520
+ Rate limit check for token_74700d80: 5/200 requests, remaining: 195, limited: false
521
+ [INFO] ynab:diagnostic_info | SUCCESS | 4ms | rate_limit_remaining:195
522
+
523
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should clear cache using the clear_cache tool
524
+ Rate limit check for token_74700d80: 5/200 requests, remaining: 195, limited: false
525
+
526
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should clear cache using the clear_cache tool
527
+ Recorded request for token_74700d80: 6/200 requests
528
+
529
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should clear cache using the clear_cache tool
530
+ Rate limit check for token_74700d80: 6/200 requests, remaining: 194, limited: false
531
+ [INFO] ynab:clear_cache | SUCCESS | 0ms | rate_limit_remaining:194
532
+
533
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should include enhanced cache metrics in real diagnostic collection
534
+ Rate limit check for token_74700d80: 6/200 requests, remaining: 194, limited: false
535
+
536
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should include enhanced cache metrics in real diagnostic collection
537
+ Recorded request for token_74700d80: 7/200 requests
538
+
539
+ ✓  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 288ms
540
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Graceful Shutdown > should handle process signals gracefully 7ms
541
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Graceful Shutdown > should clean up resources on shutdown 5ms
542
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should set and retrieve default budget using tools 415ms
543
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should provide diagnostic info with requested sections 10ms
544
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should clear cache using the clear_cache tool 8ms
545
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should track cache performance metrics during real tool execution 8ms
546
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should demonstrate LRU eviction with real cache operations 8ms
547
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should show cache hit rate improvement with repeated operations 7ms
548
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should handle concurrent cache operations correctly 7ms
549
+ stderr | src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Full Startup Workflow > should complete full startup sequence successfully
550
+ ✅ Server startup workflow completed successfully
551
+
552
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should include enhanced cache metrics in real diagnostic collection
553
+ Rate limit check for token_74700d80: 7/200 requests, remaining: 193, limited: false
554
+ [INFO] ynab:list_budgets | SUCCESS | 230ms | rate_limit_remaining:193
555
+
556
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should include enhanced cache metrics in real diagnostic collection
557
+ Rate limit check for token_74700d80: 7/200 requests, remaining: 193, limited: false
558
+
559
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should include enhanced cache metrics in real diagnostic collection
560
+ Recorded request for token_74700d80: 8/200 requests
561
+
562
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should include enhanced cache metrics in real diagnostic collection
563
+ Rate limit check for token_74700d80: 8/200 requests, remaining: 192, limited: false
564
+ [INFO] ynab:get_user | SUCCESS | 93ms | rate_limit_remaining:192
565
+
566
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should include enhanced cache metrics in real diagnostic collection
567
+ Rate limit check for token_74700d80: 8/200 requests, remaining: 192, limited: false
568
+
569
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should include enhanced cache metrics in real diagnostic collection
570
+ Recorded request for token_74700d80: 9/200 requests
571
+
572
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should include enhanced cache metrics in real diagnostic collection
573
+ Rate limit check for token_74700d80: 9/200 requests, remaining: 191, limited: false
574
+ [INFO] ynab:diagnostic_info | SUCCESS | 1ms | rate_limit_remaining:191
575
+
576
+ stderr | src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Full Startup Workflow > should fail fast on authentication errors
577
+ Server startup failed: Token validation failed: [object Object]
578
+
579
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Full Startup Workflow > should complete full startup sequence successfully 293ms
580
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Full Startup Workflow > should fail fast on configuration errors 4ms
581
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should configure output formatter via set_output_format tool
582
+ Rate limit check for token_74700d80: 9/200 requests, remaining: 191, limited: false
583
+
584
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should configure output formatter via set_output_format tool
585
+ Recorded request for token_74700d80: 10/200 requests
586
+
587
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should configure output formatter via set_output_format tool
588
+ Rate limit check for token_74700d80: 10/200 requests, remaining: 190, limited: false
589
+ [INFO] ynab:set_output_format | SUCCESS | 2ms | rate_limit_remaining:190
590
+
591
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should configure output formatter via set_output_format tool
592
+ Rate limit check for token_74700d80: 10/200 requests, remaining: 190, limited: false
593
+
594
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should configure output formatter via set_output_format tool
595
+ Recorded request for token_74700d80: 11/200 requests
596
+
597
+ ✓  integration:domain  src/server/__tests__/server-startup.integration.test.ts > Server Startup and Transport Integration > Full Startup Workflow > should fail fast on authentication errors 98ms
598
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should configure output formatter via set_output_format tool
599
+ Rate limit check for token_74700d80: 11/200 requests, remaining: 189, limited: false
600
+ [INFO] ynab:set_output_format | SUCCESS | 1ms | rate_limit_remaining:189
601
+
602
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should surface validation errors for invalid inputs
603
+ Rate limit check for token_74700d80: 11/200 requests, remaining: 189, limited: false
604
+ [ERROR] ynab:get_budget | FAILED | 0ms | rate_limit_remaining:189 | error:"Validation failed: Validation error: Invalid input: expected string, received undefined at "budget_id""
605
+
606
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Modular Architecture Integration with Real API > should maintain real API functionality after modular refactoring
607
+ Rate limit check for token_74700d80: 11/200 requests, remaining: 189, limited: false
608
+
609
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Modular Architecture Integration with Real API > should maintain real API functionality after modular refactoring
610
+ Recorded request for token_74700d80: 12/200 requests
611
+
612
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should include enhanced cache metrics in real diagnostic collection 332ms
613
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should configure output formatter via set_output_format tool 9ms
614
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > MCP Server Functionality > should surface validation errors for invalid inputs 9ms
615
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Modular Architecture Integration with Real API > should maintain real API functionality after modular refactoring
616
+ Rate limit check for token_74700d80: 12/200 requests, remaining: 188, limited: false
617
+ [INFO] ynab:get_user | SUCCESS | 95ms | rate_limit_remaining:188
618
+
619
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Modular Architecture Integration with Real API > should maintain real API functionality after modular refactoring
620
+ Rate limit check for token_74700d80: 12/200 requests, remaining: 188, limited: false
621
+
622
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Modular Architecture Integration with Real API > should maintain real API functionality after modular refactoring
623
+ Recorded request for token_74700d80: 13/200 requests
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: 13/200 requests, remaining: 187, limited: false
627
+ [INFO] ynab:list_budgets | SUCCESS | 0ms | rate_limit_remaining:187
628
+
629
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Modular Architecture Integration with Real API > should maintain real API functionality after modular refactoring
630
+ Rate limit check for token_74700d80: 13/200 requests, remaining: 187, limited: false
631
+
632
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Modular Architecture Integration with Real API > should maintain real API functionality after modular refactoring
633
+ Recorded request for token_74700d80: 14/200 requests
634
+
635
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Modular Architecture Integration with Real API > should maintain real API functionality after modular refactoring
636
+ Rate limit check for token_74700d80: 14/200 requests, remaining: 186, limited: false
637
+ [INFO] ynab:diagnostic_info | SUCCESS | 1ms | rate_limit_remaining:186
638
+
639
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Modular Architecture Integration with Real API > should handle modular service errors gracefully in integration
640
+ Rate limit check for token_74700d80: 14/200 requests, remaining: 186, limited: false
641
+ [ERROR] ynab:get_budget | FAILED | 0ms | rate_limit_remaining:186 | error:"Validation failed: Validation error: Invalid input: expected string, received undefined at "budget_id""
642
+
643
+ 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
644
+ Rate limit check for token_74700d80: 14/200 requests, remaining: 186, limited: false
645
+
646
+ 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
647
+ Recorded request for token_74700d80: 15/200 requests
648
+
649
+ 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
650
+ Rate limit check for token_74700d80: 15/200 requests, remaining: 185, limited: false
651
+ [INFO] ynab:list_budgets | SUCCESS | 0ms | rate_limit_remaining:185
652
+
653
+ 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
654
+ Rate limit check for token_74700d80: 15/200 requests, remaining: 185, limited: false
655
+
656
+ 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
657
+ Recorded request for token_74700d80: 16/200 requests
658
+
659
+ stderr | src/tools/reconciliation/__tests__/executor.integration.test.ts > Reconciliation Executor - Bulk Create Integration > creates 10 transactions via bulk mode
660
+ ⏭️ Skipping test due to YNAB API rate limit
661
+
662
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Modular Architecture Integration with Real API > should maintain real API functionality after modular refactoring 105ms
663
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Modular Architecture Integration with Real API > should handle modular service errors gracefully in integration 8ms
664
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should handle real YNAB API calls with budget resolution errors 8ms
665
+ ✓  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
666
+ stderr | src/tools/reconciliation/__tests__/executor.integration.test.ts > Reconciliation Executor - Bulk Create Integration > creates 10 transactions via bulk mode
667
+ ⏭️ Skipping test due to YNAB API rate limit
668
+
669
+ stderr | src/tools/reconciliation/__tests__/executor.integration.test.ts > Reconciliation Executor - Bulk Create Integration > creates 10 transactions via bulk mode
670
+ ⏭️ Skipping test due to YNAB API rate limit
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: 16/200 requests, remaining: 184, limited: false
674
+ [INFO] ynab:set_default_budget | SUCCESS | 403ms | rate_limit_remaining:184
675
+
676
+ 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
677
+ Rate limit check for token_74700d80: 16/200 requests, remaining: 184, limited: false
678
+
679
+ 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
680
+ Recorded request for token_74700d80: 17/200 requests
681
+
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: 17/200 requests, remaining: 183, limited: false
684
+ [INFO] ynab:list_accounts | SUCCESS | 5ms | rate_limit_remaining:183
685
+
686
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should handle real API errors properly with budget resolution
687
+ Rate limit check for token_74700d80: 17/200 requests, remaining: 183, limited: false
688
+
689
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should handle real API errors properly with budget resolution
690
+ Recorded request for token_74700d80: 18/200 requests
691
+
692
+ stderr | src/tools/reconciliation/__tests__/executor.integration.test.ts > Reconciliation Executor - Bulk Create Integration > creates 10 transactions via bulk mode
693
+ ⏭️ Skipping test due to YNAB API rate limit
694
+
695
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should handle real API errors properly with budget resolution
696
+ Rate limit check for token_74700d80: 18/200 requests, remaining: 182, limited: false
697
+ [INFO] ynab:list_accounts | SUCCESS | 96ms | rate_limit_remaining:182
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
+ ⏭️ Skipping test due to YNAB API rate limit
701
+
702
+ ✓  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 418ms
703
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should maintain performance with real API calls and budget resolution
704
+ Rate limit check for token_74700d80: 18/200 requests, remaining: 182, limited: false
705
+
706
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should maintain performance with real API calls and budget resolution
707
+ Recorded request for token_74700d80: 19/200 requests
708
+
709
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should maintain performance with real API calls and budget resolution
710
+ Rate limit check for token_74700d80: 19/200 requests, remaining: 181, limited: false
711
+ [INFO] ynab:list_budgets | SUCCESS | 0ms | rate_limit_remaining:181
712
+
713
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should maintain performance with real API calls and budget resolution
714
+ Rate limit check for token_74700d80: 19/200 requests, remaining: 181, limited: false
715
+
716
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should maintain performance with real API calls and budget resolution
717
+ Recorded request for token_74700d80: 20/200 requests
718
+
719
+ stderr | src/tools/reconciliation/__tests__/executor.integration.test.ts > Reconciliation Executor - Bulk Create Integration > creates 10 transactions via bulk mode
720
+ ⏭️ Skipping test due to YNAB API rate limit
721
+
722
+ ↓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should handle real API errors properly with budget resolution 103ms
723
+ stderr | src/tools/reconciliation/__tests__/executor.integration.test.ts > Reconciliation Executor - Bulk Create Integration > creates 10 transactions via bulk mode
724
+ ⏭️ Skipping test due to YNAB API rate limit
725
+
726
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should maintain performance with real API calls and budget resolution
727
+ Rate limit check for token_74700d80: 20/200 requests, remaining: 180, limited: false
728
+ [INFO] ynab:set_default_budget | SUCCESS | 365ms | rate_limit_remaining:180
729
+
730
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should maintain performance with real API calls and budget resolution
731
+ Rate limit check for token_74700d80: 20/200 requests, remaining: 180, limited: false
732
+ Rate limit check for token_74700d80: 20/200 requests, remaining: 180, limited: false
733
+ Rate limit check for token_74700d80: 20/200 requests, remaining: 180, limited: false
734
+ Recorded request for token_74700d80: 21/200 requests
735
+ Recorded request for token_74700d80: 22/200 requests
736
+ Recorded request for token_74700d80: 23/200 requests
737
+
738
+ stderr | src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should maintain performance with real API calls and budget resolution
739
+ Rate limit check for token_74700d80: 23/200 requests, remaining: 177, limited: false
740
+ [INFO] ynab:list_accounts | SUCCESS | 19ms | rate_limit_remaining:177
741
+ Rate limit check for token_74700d80: 23/200 requests, remaining: 177, limited: false
742
+ [INFO] ynab:list_categories | SUCCESS | 19ms | rate_limit_remaining:177
743
+ Rate limit check for token_74700d80: 23/200 requests, remaining: 177, limited: false
744
+ [INFO] ynab:list_payees | SUCCESS | 19ms | rate_limit_remaining:177
745
+
746
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should maintain performance with real API calls and budget resolution 395ms
747
+ ✓  integration:domain  src/server/__tests__/YNABMCPServer.integration.test.ts > YNABMCPServer > Budget Resolution Integration Tests > should handle security middleware with budget resolution errors 5ms
748
+ ✓  integration:domain  src/tools/reconciliation/__tests__/executor.integration.test.ts > Reconciliation Executor - Bulk Create Integration > creates 10 transactions via bulk mode 2567ms
749
+ stderr | src/tools/reconciliation/__tests__/executor.integration.test.ts > Reconciliation Executor - Bulk Create Integration > reports duplicates when import IDs already exist
750
+ ⏭️ Skipping test due to YNAB API rate limit
751
+
752
+ ✓  integration:domain  src/tools/reconciliation/__tests__/executor.integration.test.ts > Reconciliation Executor - Bulk Create Integration > reports duplicates when import IDs already exist 192ms
753
+ stderr | src/tools/reconciliation/__tests__/executor.integration.test.ts > Reconciliation Executor - Bulk Create Integration > processes 150 transactions across multiple chunks
754
+ ⏭️ Skipping test due to YNAB API rate limit
755
+
756
+ ✓  integration:domain  src/tools/reconciliation/__tests__/executor.integration.test.ts > Reconciliation Executor - Bulk Create Integration > processes 150 transactions across multiple chunks 216ms
757
+ stderr | src/tools/reconciliation/__tests__/executor.integration.test.ts > Reconciliation Executor - Bulk Create Integration > processes 20 transactions in under 8 seconds
758
+ ⏭️ Skipping test due to YNAB API rate limit
759
+
760
+ ✓  integration:domain  src/tools/reconciliation/__tests__/executor.integration.test.ts > Reconciliation Executor - Bulk Create Integration > processes 20 transactions in under 8 seconds 197ms
761
+ stderr | src/tools/reconciliation/__tests__/executor.integration.test.ts > Reconciliation Executor - Bulk Create Integration > skips work when a rate limit error is detected
762
+ ⏭️ Skipping test due to YNAB API rate limit
763
+
764
+ ✓  integration:domain  src/tools/reconciliation/__tests__/executor.integration.test.ts > Reconciliation Executor - Bulk Create Integration > propagates API errors for invalid account IDs 193ms
765
+ ✓  integration:domain  src/tools/reconciliation/__tests__/executor.integration.test.ts > Reconciliation Executor - Bulk Create Integration > skips work when a rate limit error is detected 101ms
766
+
767
+  Test Files  12 passed | 11 skipped (23)
768
+  Tests  134 passed | 50 skipped (188)
769
+  Start at  22:04:29
770
+  Duration  10.40s (transform 3.13s, setup 0ms, collect 50.81s, tests 11.65s, environment 11ms, prepare 6.61s)
771
+
772
+
773
+ 📊 Test results written to test-results/
774
+ - summary.json (overview)
775
+ - *-tests.json (1 project file(s))
776
+ - passed-tests-summary.json
777
+ - index.html (interactive report)
778
+
779
+ 💡 test-results.json contains a pointer to the detailed results
780
+  HTML  Report is generated
781
+  You can run npx vite preview --outDir test-results to see the test results.