@dizzlkheinz/ynab-mcpb 0.17.0 → 0.18.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.
- package/.env.example +33 -33
- package/.github/workflows/ci-tests.yml +45 -45
- package/.github/workflows/claude-code-review.yml +57 -57
- package/.github/workflows/claude.yml +50 -50
- package/.github/workflows/full-integration.yml +22 -22
- package/.github/workflows/publish.yml +12 -3
- package/.github/workflows/release.yml +2 -2
- package/CHANGELOG.md +10 -1
- package/CLAUDE.md +16 -12
- package/README.md +6 -1
- package/dist/bundle/index.cjs +49 -49
- package/dist/server/YNABMCPServer.d.ts +125 -54
- package/dist/server/YNABMCPServer.js +42 -11
- package/dist/server/cacheManager.js +6 -5
- package/dist/server/completions.d.ts +25 -0
- package/dist/server/completions.js +160 -0
- package/dist/server/config.d.ts +2 -2
- package/dist/server/errorHandler.js +1 -0
- package/dist/server/rateLimiter.js +3 -1
- package/dist/server/resources.d.ts +1 -0
- package/dist/server/resources.js +33 -16
- package/dist/server/securityMiddleware.d.ts +38 -8
- package/dist/server/securityMiddleware.js +1 -0
- package/dist/server/toolRegistry.d.ts +9 -0
- package/dist/server/toolRegistry.js +11 -0
- package/dist/tools/adapters.d.ts +3 -1
- package/dist/tools/adapters.js +1 -0
- package/dist/tools/reconciliation/executor.d.ts +2 -0
- package/dist/tools/reconciliation/executor.js +26 -1
- package/dist/tools/reconciliation/index.d.ts +3 -2
- package/dist/tools/reconciliation/index.js +4 -3
- package/dist/tools/schemas/outputs/index.d.ts +2 -2
- package/dist/tools/schemas/outputs/index.js +2 -2
- package/dist/tools/schemas/outputs/utilityOutputs.d.ts +0 -15
- package/dist/tools/schemas/outputs/utilityOutputs.js +0 -9
- package/dist/tools/utilityTools.d.ts +0 -7
- package/dist/tools/utilityTools.js +1 -50
- package/docs/maintainers/npm-publishing.md +27 -0
- package/docs/reference/API.md +83 -97
- package/docs/technical/reconciliation-system-architecture.md +2251 -2251
- package/package.json +6 -6
- package/scripts/analyze-bundle.mjs +41 -41
- package/scripts/generate-mcpb.ps1 +95 -95
- package/scripts/watch-and-restart.ps1 +49 -49
- package/src/__tests__/comprehensive.integration.test.ts +4 -32
- package/src/__tests__/performance.test.ts +5 -14
- package/src/__tests__/setup.ts +45 -14
- package/src/__tests__/smoke.e2e.test.ts +70 -0
- package/src/__tests__/testUtils.ts +2 -113
- package/src/server/YNABMCPServer.ts +64 -10
- package/src/server/__tests__/YNABMCPServer.test.ts +0 -1
- package/src/server/__tests__/completions.integration.test.ts +117 -0
- package/src/server/__tests__/completions.test.ts +319 -0
- package/src/server/__tests__/resources.template.test.ts +3 -3
- package/src/server/__tests__/resources.test.ts +3 -3
- package/src/server/__tests__/toolRegistration.test.ts +3 -3
- package/src/server/cacheManager.ts +7 -6
- package/src/server/completions.ts +279 -0
- package/src/server/errorHandler.ts +1 -0
- package/src/server/rateLimiter.ts +4 -1
- package/src/server/resources.ts +49 -13
- package/src/server/securityMiddleware.ts +1 -0
- package/src/server/toolRegistry.ts +42 -0
- package/src/tools/__tests__/transactionTools.integration.test.ts +63 -3
- package/src/tools/__tests__/utilityTools.integration.test.ts +1 -85
- package/src/tools/__tests__/utilityTools.test.ts +1 -123
- package/src/tools/adapters.ts +22 -1
- package/src/tools/reconciliation/__tests__/executor.progress.test.ts +462 -0
- package/src/tools/reconciliation/executor.ts +55 -1
- package/src/tools/reconciliation/index.ts +7 -3
- package/src/tools/schemas/outputs/index.ts +0 -3
- package/src/tools/schemas/outputs/utilityOutputs.ts +2 -43
- package/src/tools/toolCategories.ts +0 -1
- package/src/tools/utilityTools.ts +5 -76
- package/vitest.config.ts +4 -1
- package/.chunkhound.json +0 -11
- package/.code/agents/0098661e-0fa3-4990-beb9-c0cbf3f123aa/status.txt +0 -1
- package/.code/agents/01a13ef4-3f23-4f52-b33b-3585b73cfa60/error.txt +0 -3
- package/.code/agents/084fd32f-e298-4728-9103-a78d7dc39613/error.txt +0 -3
- package/.code/agents/0fed51e1-a943-4b97-a2a8-a6f0f27c844d/status.txt +0 -1
- package/.code/agents/1059b6bd-5ccd-4d83-a12c-7c9d89137399/error.txt +0 -5
- package/.code/agents/110/exec-call_F9BDNG7JfxKkq7Vc8ESAvdft.txt +0 -1569
- package/.code/agents/11ebcef3-b13f-4e44-ad80-d94a866804b7/error.txt +0 -3
- package/.code/agents/1324/exec-call_tIpx9uV1TpARbAMZonRQm8AO.txt +0 -757
- package/.code/agents/1398/exec-call_CjItcWMU1G6JoPshX62QvpaR.txt +0 -2832
- package/.code/agents/1398/exec-call_SUVq2ivmONQ5LMCmd7ngmOqr.txt +0 -2709
- package/.code/agents/1398/exec-call_SdNY4NOffdcC5pRYjVXHjPCK.txt +0 -2832
- package/.code/agents/1398/exec-call_qblJo9et1gsFFB63TtLOiji2.txt +0 -2832
- package/.code/agents/1398/exec-call_zaRrzlGz7GJcNzVfkAmML7Zg.txt +0 -2709
- package/.code/agents/1572/exec-call_GjVFBFOWcY7lE0idc5nWlLNh.txt +0 -781
- package/.code/agents/171834fd-5905-42fc-bbcc-2c755145b0fc/status.txt +0 -1
- package/.code/agents/1724/exec-call_HvHQe0w5CCG3T7Q3ULT6MO3g.txt +0 -5217
- package/.code/agents/1724/exec-call_QwUNESVzfxxk78K1frh1Vahb.txt +0 -2594
- package/.code/agents/1724/exec-call_aJ1Xwz71XmIpD4SBxSHERzLe.txt +0 -2594
- package/.code/agents/1846/exec-call_1YNAVD18RjrMN7JnfkkQhUP3.txt +0 -766
- package/.code/agents/1846/exec-call_lh3lDzE4WJAh1lFiomiiZ73D.txt +0 -766
- package/.code/agents/1d7d7ab7-7473-4b69-8b97-6e914f56056a/result.txt +0 -231
- package/.code/agents/2038/exec-call_DYwOukaYsL8VCONWmV2rUW5u.txt +0 -766
- package/.code/agents/2038/exec-call_c7fOQ7UrpVcTtvdfGBRM146V.txt +0 -652
- package/.code/agents/2038/exec-call_ySNyq9Mm55jWE480s54r5QcA.txt +0 -766
- package/.code/agents/210/exec-call_0tQCsKNJ1WTuIchb8wlcFJpW.txt +0 -2590
- package/.code/agents/210/exec-call_8ZlY9cUc8Ft1twi4ch8UJ6IN.txt +0 -5195
- package/.code/agents/2188/exec-call_5HqayBxIteJtoI8oPTiLWgvJ.txt +0 -286
- package/.code/agents/2188/exec-call_XRbBKBq3adZe6dcppAvQtM7G.txt +0 -218
- package/.code/agents/2188/exec-call_ehA0SjpYtrUi6GJXmibLjp4i.txt +0 -180
- package/.code/agents/21902821-ecaf-4759-bb9d-222b90921af5/error.txt +0 -3
- package/.code/agents/2256/exec-call_AtPcRWPmFPMcmX6qOFm1fCEY.txt +0 -766
- package/.code/agents/232073be-aa0e-46da-b478-5b64dbf03cf5/status.txt +0 -1
- package/.code/agents/234ff534-2336-4771-a8d9-aa04421a63be/result.txt +0 -747
- package/.code/agents/2454/exec-call_aFJpupwjfZeOBm7ixI5Vc8z2.txt +0 -766
- package/.code/agents/2454/exec-call_wogZ4HfXTodTEXvdgXlVUBpv.txt +0 -766
- package/.code/agents/253e2695-dc36-4022-b436-27655e0fc6c7/status.txt +0 -1
- package/.code/agents/2583/exec-call_M59I4eDjpjlBIWBiSxyS0YlJ.txt +0 -2594
- package/.code/agents/2583/exec-call_usLRGh7OhVHtsRBL4iUwRhjq.txt +0 -2594
- package/.code/agents/292aa3ff-dbab-470f-97c9-e7e8fd65e0db/result.txt +0 -144
- package/.code/agents/2e905864-aa07-4314-bcf9-c5b32277e4ac/result.txt +0 -36
- package/.code/agents/3073/exec-call_Peeagc9DxGYLgE6pNdMZhqIE.txt +0 -766
- package/.code/agents/3073/exec-call_d2YSE3hXF08KRSoUM3qd8Z3x.txt +0 -766
- package/.code/agents/3134/exec-call_IgCAMGx19lWfuo8zfYIt5FFC.txt +0 -416
- package/.code/agents/3134/exec-call_IxvLR2Oo7kba2QTsI1gHVko8.txt +0 -2590
- package/.code/agents/3134/exec-call_jYvc8hksZChSiysbzKjl2ZbB.txt +0 -2590
- package/.code/agents/329/exec-call_4QdP3SfSO7HGPCwVcqZIth6s.txt +0 -2590
- package/.code/agents/335aa031-466d-4fb7-925f-3cd864e264d0/result.txt +0 -191
- package/.code/agents/3364/exec-call_NbhIrsM5HhyDZDmJZG5CuCYL.txt +0 -766
- package/.code/agents/3364/exec-call_cKtJg0NrXiwXEFwlsE3uPZRA.txt +0 -766
- package/.code/agents/36d98414-5cde-4d9d-9a67-a240a18c1f07/result.txt +0 -189
- package/.code/agents/4604e866-b7b8-44f5-992f-2f683b0a523b/status.txt +0 -1
- package/.code/agents/472/exec-call_4AxzEEcWwkKhpqRB3bE8Ha4L.txt +0 -790
- package/.code/agents/472/exec-call_CB3LPYQA8QIZRi8I6kj4J17A.txt +0 -766
- package/.code/agents/472/exec-call_YeoUWvaFoktay2nqVUsa9KKX.txt +0 -790
- package/.code/agents/472/exec-call_jPWgKVquBBXTg0T3Lks5ZfkK.txt +0 -2594
- package/.code/agents/472/exec-call_qBkvunpGBDEHph2jPmTwtcsb.txt +0 -1000
- package/.code/agents/472/exec-call_v0ffRV1p0kTckBmJPzzHAEy0.txt +0 -3489
- package/.code/agents/472/exec-call_xAX5FXqWIlk02d9WubHbHWh8.txt +0 -766
- package/.code/agents/5346/exec-call_9q0muXUuLaucwEqI51Pt7idT.txt +0 -2594
- package/.code/agents/5346/exec-call_B2el3B79rVkq9LhWTI2VYlz7.txt +0 -2456
- package/.code/agents/5346/exec-call_BfX08f02qkZI9uJD5dvCvuoj.txt +0 -2594
- package/.code/agents/543328d0-61d6-4fd1-a723-bb168656e2e2/error.txt +0 -18
- package/.code/agents/5580c02c-1383-4d18-9cbd-cc8a06e3408d/result.txt +0 -48
- package/.code/agents/5f8dc01c-47b3-4163-b0b3-aa31be89fcdc/status.txt +0 -1
- package/.code/agents/60ce1a22-5126-44b2-b977-1d5b56142a7b/status.txt +0 -1
- package/.code/agents/6215d9db-7fa9-4429-aeec-3835c3212291/error.txt +0 -1
- package/.code/agents/6743db55-30e5-4b4e-9366-a8214fc7f714/error.txt +0 -1
- package/.code/agents/6bf9591b-b9c9-422c-b0a5-e968c7d8422a/status.txt +0 -1
- package/.code/agents/7/exec-call_HltHpkDox0Zm1vGEjdksUgpE.txt +0 -1120
- package/.code/agents/7/exec-call_LCATrOPPAgbxW9Q1z0XaVi2E.txt +0 -2646
- package/.code/agents/7/exec-call_W8DeRfNG9hvbgVFvf0clBf6R.txt +0 -2646
- package/.code/agents/7/exec-call_eww3GfdEiJZx61sJEQ9wNmt3.txt +0 -1271
- package/.code/agents/70/exec-call_owUtDMYiVgqDf8vsz1i32PFf.txt +0 -1570
- package/.code/agents/8/exec-call_UtrjAcLbhYLatxR4O97fZgnm.txt +0 -2590
- package/.code/agents/82490bc9-f34e-4b1b-8a8e-bccc2e6254f5/error.txt +0 -3
- package/.code/agents/841/exec-call_7nTNhSBCNjTDUIJv7py6CepO.txt +0 -3299
- package/.code/agents/841/exec-call_TLI0yUdUijuUAvI4o3DXEvHO.txt +0 -3299
- package/.code/agents/9/exec-call_XaABQT1hIlRpnKZ2uyBMWsTC.txt +0 -1882
- package/.code/agents/941/exec-call_GuGHRx7NNXWIDAnxUG2NEWPa.txt +0 -2594
- package/.code/agents/94a0ddf3-a304-4ec3-913e-3cceef509948/error.txt +0 -1
- package/.code/agents/95d9fbab-19a2-48af-83f9-c792566a347f/error.txt +0 -1
- package/.code/agents/b0098cb8-cb32-4ada-9bc4-37c587518896/result.txt +0 -170
- package/.code/agents/b4fe59a4-81df-42e2-a112-0153e504faca/error.txt +0 -1
- package/.code/agents/bf4ce152-f623-49d7-aa52-c18631625c3c/error.txt +0 -3
- package/.code/agents/d7d1db75-d7eb-468e-adea-4ef4d916d187/status.txt +0 -1
- package/.code/agents/e2baa9c8-bac3-49e3-a39d-024333e6a990/status.txt +0 -1
- package/.code/agents/e2c752b7-711d-423a-af57-f53c809deb84/result.txt +0 -160
- package/.code/agents/e350b8c3-8483-408c-b2bb-94515f492a11/error.txt +0 -3
- package/.code/agents/e63f9919-719f-4ad0-bccf-01b1a596e1e9/status.txt +0 -1
- package/.code/agents/e6601719-c31f-4a0e-8c71-d70787d0ab71/status.txt +0 -1
- package/.code/agents/e71695a8-3044-478d-8f12-ed13d02884c7/status.txt +0 -1
- package/.code/agents/f250b7ed-5bd5-4036-aa8c-ce63caee7d61/result.txt +0 -20
- package/.code/agents/f95b7464-3e25-4897-b153-c8dfd63fd605/error.txt +0 -5
- package/.code/agents/fa3c5ddf-cdf7-47a2-930a-b806c6363689/status.txt +0 -1
- package/AGENTS.md +0 -1
- package/NUL +0 -0
- package/package.json.tmp +0 -105
- package/src/__tests__/delta.performance.test.ts +0 -80
- package/src/__tests__/workflows.e2e.test.ts +0 -1702
- package/temp-recon.ts +0 -126
- package/test-exports/ynab_account_e9ddc2a6_minimal_1items_2025-11-19_09-04-53.json +0 -23
- package/test-exports/ynab_account_e9ddc2a6_minimal_1items_2025-11-19_10-37-42.json +0 -23
- package/test-exports/ynab_account_e9ddc2a6_minimal_4items_2025-11-19_09-02-09.json +0 -44
- package/test-exports/ynab_account_e9ddc2a6_minimal_6items_2025-11-19_10-37-52.json +0 -58
- package/test-exports/ynab_since_2025-10-16_account_53298e13_238items_2025-11-28_13-46-20.json +0 -3662
- package/test-exports/ynab_since_2025-11-01_account_4c18e9f0_minimal_14items_2025-11-16_10-07-10.json +0 -115
|
@@ -1,766 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
> @dizzlkheinz/ynab-mcpb@0.13.4 test:integration:core
|
|
3
|
-
> vitest run --project integration:core
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
[1m[46m RUN [49m[22m [36mv3.2.4 [39m[90mC:/Users/ksutk/projects/ynab-mcpb[39m
|
|
7
|
-
|
|
8
|
-
[90mstderr[2m | src/server/__tests__/security.integration.test.ts[2m > [22m[2mSecurity Integration[2m > [22m[2mend-to-end security flow[2m > [22m[2mshould sanitize sensitive data in logs
|
|
9
|
-
[22m[39m[INFO] ynab:create_transaction:creating transaction | SUCCESS | 1ms | rate_limit_remaining:2
|
|
10
|
-
|
|
11
|
-
[90mstderr[2m | src/server/__tests__/security.integration.test.ts[2m > [22m[2mSecurity Integration[2m > [22m[2mend-to-end security flow[2m > [22m[2mshould handle multiple users with independent rate limits
|
|
12
|
-
[22m[39m[INFO] ynab:test:test | SUCCESS | 0ms | rate_limit_remaining:2
|
|
13
|
-
|
|
14
|
-
[90mstderr[2m | src/server/__tests__/security.integration.test.ts[2m > [22m[2mSecurity Integration[2m > [22m[2mend-to-end security flow[2m > [22m[2mshould handle multiple users with independent rate limits
|
|
15
|
-
[22m[39m[INFO] ynab:test:test | SUCCESS | 0ms | rate_limit_remaining:1
|
|
16
|
-
|
|
17
|
-
[90mstderr[2m | src/server/__tests__/security.integration.test.ts[2m > [22m[2mSecurity Integration[2m > [22m[2mend-to-end security flow[2m > [22m[2mshould handle multiple users with independent rate limits
|
|
18
|
-
[22m[39m[INFO] ynab:test:test | SUCCESS | 0ms | rate_limit_remaining:0
|
|
19
|
-
[WARN] Rate limit exceeded for ynab:test
|
|
20
|
-
|
|
21
|
-
[90mstderr[2m | src/server/__tests__/security.integration.test.ts[2m > [22m[2mSecurity Integration[2m > [22m[2mend-to-end security flow[2m > [22m[2mshould handle multiple users with independent rate limits
|
|
22
|
-
[22m[39m[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
|
-
[90mstderr[2m | src/server/__tests__/security.integration.test.ts[2m > [22m[2mSecurity Integration[2m > [22m[2mend-to-end security flow[2m > [22m[2mshould handle multiple users with independent rate limits
|
|
26
|
-
[22m[39m[INFO] ynab:test:test | SUCCESS | 0ms | rate_limit_remaining:2
|
|
27
|
-
|
|
28
|
-
[90mstderr[2m | src/server/__tests__/security.integration.test.ts[2m > [22m[2mSecurity Integration[2m > [22m[2mend-to-end security flow[2m > [22m[2mshould provide comprehensive security statistics
|
|
29
|
-
[22m[39m[INFO] ynab:test:test | SUCCESS | 1ms | rate_limit_remaining:2
|
|
30
|
-
|
|
31
|
-
[90mstderr[2m | src/server/__tests__/security.integration.test.ts[2m > [22m[2mSecurity Integration[2m > [22m[2mend-to-end security flow[2m > [22m[2mshould provide comprehensive security statistics
|
|
32
|
-
[22m[39m[INFO] ynab:test:test | SUCCESS | 0ms | rate_limit_remaining:1
|
|
33
|
-
|
|
34
|
-
[90mstderr[2m | src/server/__tests__/security.integration.test.ts[2m > [22m[2mSecurity Integration[2m > [22m[2mend-to-end security flow[2m > [22m[2mshould provide comprehensive security statistics
|
|
35
|
-
[22m[39m[ERROR] ynab:test:test | FAILED | 0ms | rate_limit_remaining:0 | error:"Test error"
|
|
36
|
-
[WARN] Rate limit exceeded for ynab:test
|
|
37
|
-
|
|
38
|
-
[90mstderr[2m | src/server/__tests__/security.integration.test.ts[2m > [22m[2mSecurity Integration[2m > [22m[2mperformance under load[2m > [22m[2mshould handle rapid requests efficiently
|
|
39
|
-
[22m[39m[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
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/security.integration.test.ts[2m > [22mSecurity Integration[2m > [22mend-to-end security flow[2m > [22mshould handle a complete successful request flow[32m 18[2mms[22m[39m
|
|
47
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/security.integration.test.ts[2m > [22mSecurity Integration[2m > [22mend-to-end security flow[2m > [22mshould handle validation failures with proper logging[32m 7[2mms[22m[39m
|
|
48
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/security.integration.test.ts[2m > [22mSecurity Integration[2m > [22mend-to-end security flow[2m > [22mshould handle rate limiting with proper responses and logging[32m 5[2mms[22m[39m
|
|
49
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/security.integration.test.ts[2m > [22mSecurity Integration[2m > [22mend-to-end security flow[2m > [22mshould sanitize sensitive data in logs[32m 5[2mms[22m[39m
|
|
50
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/security.integration.test.ts[2m > [22mSecurity Integration[2m > [22mend-to-end security flow[2m > [22mshould handle multiple users with independent rate limits[32m 4[2mms[22m[39m
|
|
51
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/security.integration.test.ts[2m > [22mSecurity Integration[2m > [22mend-to-end security flow[2m > [22mshould provide comprehensive security statistics[32m 6[2mms[22m[39m
|
|
52
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/security.integration.test.ts[2m > [22mSecurity Integration[2m > [22mperformance under load[2m > [22mshould handle rapid requests efficiently[32m 2[2mms[22m[39m
|
|
53
|
-
[90mstderr[2m | src/server/__tests__/security.integration.test.ts[2m > [22m[2mSecurity Integration[2m > [22m[2mcleanup and maintenance[2m > [22m[2mshould maintain log size limits
|
|
54
|
-
[22m[39m[INFO] tool1:op1 | SUCCESS
|
|
55
|
-
[INFO] tool2:op2 | SUCCESS
|
|
56
|
-
[INFO] tool3:op3 | SUCCESS
|
|
57
|
-
|
|
58
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/__tests__/tools/reconciliation/real-world.integration.test.ts[2m > [22mReal World CSV Validation (Simulated)[2m > [22mWealthsimple[2m > [22mshould parse Wealthsimple export correctly[32m 14[2mms[22m[39m
|
|
59
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/__tests__/tools/reconciliation/real-world.integration.test.ts[2m > [22mReal World CSV Validation (Simulated)[2m > [22mTD Canada Trust[2m > [22mshould parse TD export correctly using preset[32m 2[2mms[22m[39m
|
|
60
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/security.integration.test.ts[2m > [22mSecurity Integration[2m > [22mcleanup and maintenance[2m > [22mshould clean up expired rate limit entries[32m 74[2mms[22m[39m
|
|
61
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/security.integration.test.ts[2m > [22mSecurity Integration[2m > [22mcleanup and maintenance[2m > [22mshould maintain log size limits[32m 1[2mms[22m[39m
|
|
62
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/__tests__/tools/reconciliation/csvParser.integration.test.ts[2m > [22mCSV Parser Integration Tests[2m > [22mTD Bank CSV[2m > [22mshould parse TD CSV correctly[32m 15[2mms[22m[39m
|
|
63
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/__tests__/tools/reconciliation/csvParser.integration.test.ts[2m > [22mCSV Parser Integration Tests[2m > [22mRBC Debit/Credit CSV[2m > [22mshould parse RBC CSV with debit/credit columns[32m 2[2mms[22m[39m
|
|
64
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/__tests__/tools/reconciliation/csvParser.integration.test.ts[2m > [22mCSV Parser Integration Tests[2m > [22mAmbiguous Debit/Credit Warning[2m > [22mshould warn when both debit and credit have values[32m 2[2mms[22m[39m
|
|
65
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/__tests__/tools/reconciliation/csvParser.integration.test.ts[2m > [22mCSV Parser Integration Tests[2m > [22mEuropean Number Format[2m > [22mshould handle European number format[32m 71[2mms[22m[39m
|
|
66
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/__tests__/tools/reconciliation/csvParser.integration.test.ts[2m > [22mMatcher Integration Tests[2m > [22mshould achieve high confidence matches with exact integer comparison[32m 11[2mms[22m[39m
|
|
67
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/__tests__/tools/reconciliation/csvParser.integration.test.ts[2m > [22mMatcher Integration Tests[2m > [22mshould use exact integer comparison (no float precision issues)[32m 1[2mms[22m[39m
|
|
68
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/tools/reconciliation/__tests__/recommendationEngine.integration.test.ts[2m > [22mRecommendation Engine Integration[2m > [22mwith account_id and budget_id provided[2m > [22mshould generate recommendations for unmatched bank transactions[32m 35[2mms[22m[39m
|
|
69
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/tools/reconciliation/__tests__/recommendationEngine.integration.test.ts[2m > [22mRecommendation Engine Integration[2m > [22mwith account_id and budget_id provided[2m > [22mshould handle the EvoCarShare scenario correctly[32m 9[2mms[22m[39m
|
|
70
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/tools/reconciliation/__tests__/recommendationEngine.integration.test.ts[2m > [22mRecommendation Engine Integration[2m > [22mwith account_id and budget_id provided[2m > [22mshould generate update_cleared recommendations for unmatched uncleared YNAB transactions[32m 3[2mms[22m[39m
|
|
71
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/tools/reconciliation/__tests__/recommendationEngine.integration.test.ts[2m > [22mRecommendation Engine Integration[2m > [22mwith account_id and budget_id provided[2m > [22mshould generate review_duplicate for suggested matches[32m 4[2mms[22m[39m
|
|
72
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/tools/reconciliation/__tests__/recommendationEngine.integration.test.ts[2m > [22mRecommendation Engine Integration[2m > [22mwithout account_id and budget_id (backward compatibility)[2m > [22mshould NOT generate recommendations when IDs are missing[32m 3[2mms[22m[39m
|
|
73
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/tools/reconciliation/__tests__/recommendationEngine.integration.test.ts[2m > [22mRecommendation Engine Integration[2m > [22mwithout account_id and budget_id (backward compatibility)[2m > [22mshould still perform analysis correctly without recommendations[32m 3[2mms[22m[39m
|
|
74
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/tools/reconciliation/__tests__/recommendationEngine.integration.test.ts[2m > [22mRecommendation Engine Integration[2m > [22mcomplex scenarios[2m > [22mshould generate multiple recommendations for multiple unmatched transactions[32m 4[2mms[22m[39m
|
|
75
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/tools/reconciliation/__tests__/recommendationEngine.integration.test.ts[2m > [22mRecommendation Engine Integration[2m > [22mcomplex scenarios[2m > [22mshould handle repeat amounts with recommendations[32m 5[2mms[22m[39m
|
|
76
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/tools/reconciliation/__tests__/recommendationEngine.integration.test.ts[2m > [22mRecommendation Engine Integration[2m > [22mcomplex scenarios[2m > [22mshould generate mixed recommendation types for complex scenario[32m 8[2mms[22m[39m
|
|
77
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/tools/reconciliation/__tests__/recommendationEngine.integration.test.ts[2m > [22mRecommendation Engine Integration[2m > [22mcomplex scenarios[2m > [22mshould prioritize recommendations by priority and confidence[32m 3[2mms[22m[39m
|
|
78
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/tools/reconciliation/__tests__/recommendationEngine.integration.test.ts[2m > [22mRecommendation Engine Integration[2m > [22mcomplex scenarios[2m > [22mshould handle large discrepancies with appropriate recommendations[32m 4[2mms[22m[39m
|
|
79
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/tools/reconciliation/__tests__/recommendationEngine.integration.test.ts[2m > [22mRecommendation Engine Integration[2m > [22mrecommendation field validation[2m > [22mshould include all required metadata fields[32m 4[2mms[22m[39m
|
|
80
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/tools/reconciliation/__tests__/recommendationEngine.integration.test.ts[2m > [22mRecommendation Engine Integration[2m > [22mrecommendation field validation[2m > [22mshould generate valid create_transaction parameters[32m 2[2mms[22m[39m
|
|
81
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/errorHandler.integration.test.ts[2m > [22mError Handler Integration Tests[2m > [22m401 Unauthorized Errors[2m > [22mshould handle 401 errors in budget tools[32m 14[2mms[22m[39m
|
|
82
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/errorHandler.integration.test.ts[2m > [22mError Handler Integration Tests[2m > [22m401 Unauthorized Errors[2m > [22mshould handle 401 errors in account tools[32m 2[2mms[22m[39m
|
|
83
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/errorHandler.integration.test.ts[2m > [22mError Handler Integration Tests[2m > [22m401 Unauthorized Errors[2m > [22mshould handle 401 errors in transaction tools[32m 2[2mms[22m[39m
|
|
84
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/errorHandler.integration.test.ts[2m > [22mError Handler Integration Tests[2m > [22m403 Forbidden Errors[2m > [22mshould handle 403 errors in category tools[32m 2[2mms[22m[39m
|
|
85
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/errorHandler.integration.test.ts[2m > [22mError Handler Integration Tests[2m > [22m403 Forbidden Errors[2m > [22mshould handle 403 errors in payee tools[32m 2[2mms[22m[39m
|
|
86
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/errorHandler.integration.test.ts[2m > [22mError Handler Integration Tests[2m > [22m404 Not Found Errors[2m > [22mshould handle 404 errors in month tools[32m 1[2mms[22m[39m
|
|
87
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/errorHandler.integration.test.ts[2m > [22mError Handler Integration Tests[2m > [22m429 Rate Limit Errors[2m > [22mshould handle 429 errors in utility tools[32m 1[2mms[22m[39m
|
|
88
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/errorHandler.integration.test.ts[2m > [22mError Handler Integration Tests[2m > [22m500 Internal Server Errors[2m > [22mshould handle 500 errors consistently across tools[32m 1[2mms[22m[39m
|
|
89
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/errorHandler.integration.test.ts[2m > [22mError Handler Integration Tests[2m > [22mNetwork and Connection Errors[2m > [22mshould handle network timeout errors[32m 2[2mms[22m[39m
|
|
90
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/errorHandler.integration.test.ts[2m > [22mError Handler Integration Tests[2m > [22mNetwork and Connection Errors[2m > [22mshould handle connection refused errors[32m 2[2mms[22m[39m
|
|
91
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/errorHandler.integration.test.ts[2m > [22mError Handler Integration Tests[2m > [22mError Response Structure[2m > [22mshould maintain consistent error response structure across all tools[32m 11[2mms[22m[39m
|
|
92
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/errorHandler.integration.test.ts[2m > [22mError Handler Integration Tests[2m > [22mSensitive Data Sanitization[2m > [22mshould sanitize sensitive data in error messages across all tools[32m 1[2mms[22m[39m
|
|
93
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/errorHandler.integration.test.ts[2m > [22mError Handler Integration Tests[2m > [22mErrorHandler with real ResponseFormatter[2m > [22mshould format errors using real responseFormatter[32m 2[2mms[22m[39m
|
|
94
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/errorHandler.integration.test.ts[2m > [22mError Handler Integration Tests[2m > [22mErrorHandler with real ResponseFormatter[2m > [22mshould work with ValidationError[32m 1[2mms[22m[39m
|
|
95
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/errorHandler.integration.test.ts[2m > [22mError Handler Integration Tests[2m > [22mMinify override integration[2m > [22mshould respect responseFormatter minify settings[32m 1[2mms[22m[39m
|
|
96
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/errorHandler.integration.test.ts[2m > [22mError Handler Integration Tests[2m > [22mMinify override integration[2m > [22mshould handle pretty formatting[32m 2[2mms[22m[39m
|
|
97
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/errorHandler.integration.test.ts[2m > [22mError Handler Integration Tests[2m > [22mStatic vs instance consistency[2m > [22mshould produce identical results for static and instance calls[32m 2[2mms[22m[39m
|
|
98
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/errorHandler.integration.test.ts[2m > [22mError Handler Integration Tests[2m > [22mStatic vs instance consistency[2m > [22mshould produce identical results for createValidationError[32m 1[2mms[22m[39m
|
|
99
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/errorHandler.integration.test.ts[2m > [22mError Handler Integration Tests[2m > [22mCircular dependency resolution[2m > [22mshould not have circular dependency issues[32m 1[2mms[22m[39m
|
|
100
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/errorHandler.integration.test.ts[2m > [22mError Handler Integration Tests[2m > [22mCircular dependency resolution[2m > [22mshould work with different formatter implementations[32m 1[2mms[22m[39m
|
|
101
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/errorHandler.integration.test.ts[2m > [22mError Handler Integration Tests[2m > [22mErrorHandler factory[2m > [22mshould create different instances with different formatters[32m 1[2mms[22m[39m
|
|
102
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/errorHandler.integration.test.ts[2m > [22mError Handler Integration Tests[2m > [22mErrorHandler factory[2m > [22mshould maintain instance isolation[32m 2[2mms[22m[39m
|
|
103
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/accountTools.delta.integration.test.ts[2m > [22mDelta-backed account tool handlers[2m > [22mserves cached account results on the second invocation
|
|
104
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/accountTools.delta.integration.test.ts[2m > [22mDelta-backed account tool handlers[2m > [22mreports delta usage for list_transactions after a change
|
|
105
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/accountTools.integration.test.ts[2m > [22mAccount Tools Integration[2m > [22mshould successfully list accounts from real API
|
|
106
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/accountTools.integration.test.ts[2m > [22mAccount Tools Integration[2m > [22mshould successfully get account details from real API
|
|
107
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/accountTools.integration.test.ts[2m > [22mAccount Tools Integration[2m > [22mshould handle invalid budget ID gracefully
|
|
108
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/accountTools.integration.test.ts[2m > [22mAccount Tools Integration[2m > [22mshould handle invalid account ID gracefully
|
|
109
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/categoryTools.delta.integration.test.ts[2m > [22mDelta-backed category tool handler[2m > [22mserves cached category results on the second invocation
|
|
110
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/deltaFetcher.scheduled.integration.test.ts[2m > [22mDelta fetcher scheduled transactions integration[2m > [22mcaches scheduled transactions on repeated fetches
|
|
111
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/categoryTools.integration.test.ts[2m > [22mCategory Tools Integration[2m > [22mhandleListCategories[2m > [22mshould successfully list categories from real API
|
|
112
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/categoryTools.integration.test.ts[2m > [22mCategory Tools Integration[2m > [22mhandleListCategories[2m > [22mshould handle invalid budget ID gracefully
|
|
113
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/categoryTools.integration.test.ts[2m > [22mCategory Tools Integration[2m > [22mhandleGetCategory[2m > [22mshould successfully get category details from real API
|
|
114
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/categoryTools.integration.test.ts[2m > [22mCategory Tools Integration[2m > [22mhandleGetCategory[2m > [22mshould handle invalid category ID gracefully
|
|
115
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/categoryTools.integration.test.ts[2m > [22mCategory Tools Integration[2m > [22mhandleUpdateCategory[2m > [22mshould successfully update category budget from real API
|
|
116
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/categoryTools.integration.test.ts[2m > [22mCategory Tools Integration[2m > [22mhandleUpdateCategory[2m > [22mshould handle invalid category ID gracefully
|
|
117
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/categoryTools.integration.test.ts[2m > [22mCategory Tools Integration[2m > [22mhandleUpdateCategory[2m > [22mshould handle negative budgeted amounts
|
|
118
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/monthTools.delta.integration.test.ts[2m > [22mDelta-backed month tool handler[2m > [22mserves cached month summaries on the second invocation
|
|
119
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/monthTools.integration.test.ts[2m > [22mMonth Tools Integration[2m > [22mhandleListMonths[2m > [22mshould successfully list months from real API
|
|
120
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/monthTools.integration.test.ts[2m > [22mMonth Tools Integration[2m > [22mhandleListMonths[2m > [22mshould handle invalid budget ID gracefully
|
|
121
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/monthTools.integration.test.ts[2m > [22mMonth Tools Integration[2m > [22mhandleGetMonth[2m > [22mshould successfully get month details from real API
|
|
122
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/monthTools.integration.test.ts[2m > [22mMonth Tools Integration[2m > [22mhandleGetMonth[2m > [22mshould handle invalid budget ID gracefully
|
|
123
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/monthTools.integration.test.ts[2m > [22mMonth Tools Integration[2m > [22mhandleGetMonth[2m > [22mshould handle invalid month format gracefully
|
|
124
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/payeeTools.delta.integration.test.ts[2m > [22mDelta-backed payee tool handler[2m > [22mserves cached payee results on the second invocation
|
|
125
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/payeeTools.integration.test.ts[2m > [22mPayee Tools Integration[2m > [22mhandleListPayees[2m > [22mshould successfully list payees from real API
|
|
126
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/payeeTools.integration.test.ts[2m > [22mPayee Tools Integration[2m > [22mhandleListPayees[2m > [22mshould handle invalid budget ID gracefully
|
|
127
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/payeeTools.integration.test.ts[2m > [22mPayee Tools Integration[2m > [22mhandleGetPayee[2m > [22mshould successfully get payee details from real API
|
|
128
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/payeeTools.integration.test.ts[2m > [22mPayee Tools Integration[2m > [22mhandleGetPayee[2m > [22mshould handle invalid payee ID gracefully
|
|
129
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/payeeTools.integration.test.ts[2m > [22mPayee Tools Integration[2m > [22mhandleGetPayee[2m > [22mshould handle invalid budget ID gracefully
|
|
130
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/transactionTools.integration.test.ts[2m > [22mTransaction Tools Integration[2m > [22mshould successfully list transactions from real API
|
|
131
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/transactionTools.integration.test.ts[2m > [22mTransaction Tools Integration[2m > [22mshould successfully list transactions with account filter
|
|
132
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/transactionTools.integration.test.ts[2m > [22mTransaction Tools Integration[2m > [22mshould successfully list transactions with date filter
|
|
133
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/transactionTools.integration.test.ts[2m > [22mTransaction Tools Integration[2m > [22mshould get transaction details if transactions exist
|
|
134
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/transactionTools.integration.test.ts[2m > [22mTransaction Tools Integration[2m > [22mshould handle invalid budget ID gracefully
|
|
135
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/transactionTools.integration.test.ts[2m > [22mTransaction Tools Integration[2m > [22mshould handle invalid transaction ID gracefully
|
|
136
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/transactionTools.integration.test.ts[2m > [22mTransaction Tools Integration[2m > [22mhandleCreateTransactions - Integration[2m > [22mshould create two transactions via the bulk handler
|
|
137
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/transactionTools.integration.test.ts[2m > [22mTransaction Tools Integration[2m > [22mhandleCreateTransactions - Integration[2m > [22mshould detect duplicates when reusing import IDs
|
|
138
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/transactionTools.integration.test.ts[2m > [22mTransaction Tools Integration[2m > [22mhandleCreateTransactions - Integration[2m > [22mshould invalidate caches so new transactions appear in list results
|
|
139
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/transactionTools.integration.test.ts[2m > [22mTransaction Tools Integration[2m > [22mhandleCreateTransactions - Integration[2m > [22mshould create transactions across multiple accounts within one batch
|
|
140
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/transactionTools.integration.test.ts[2m > [22mTransaction Tools Integration[2m > [22mhandleCreateTransactions - Integration[2m > [22mshould handle large batches and report response mode
|
|
141
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/transactionTools.integration.test.ts[2m > [22mTransaction Tools Integration[2m > [22mhandleCreateTransactions - Integration[2m > [22mshould support dry run mode without creating transactions
|
|
142
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/transactionTools.integration.test.ts[2m > [22mTransaction Tools Integration[2m > [22mhandleCreateTransactions - Integration[2m > [22mshould confirm dry run does not persist data
|
|
143
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/transactionTools.integration.test.ts[2m > [22mTransaction Tools Integration[2m > [22mhandleCreateTransactions - Integration[2m > [22mshould handle invalid budget IDs gracefully during bulk create
|
|
144
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/transactionTools.integration.test.ts[2m > [22mTransaction Tools Integration[2m > [22mhandleCreateTransactions - Integration[2m > [22mshould handle invalid account IDs during bulk create
|
|
145
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/__tests__/transactionTools.integration.test.ts[2m > [22mTransaction Tools Integration[2m > [22mhandleCreateTransactions - Integration[2m > [22mdocuments rate limiting behavior for bulk requests
|
|
146
|
-
[90m·[39m [30m[45m integration:core [49m[39m src/tools/__tests__/transactionTools.integration.test.ts[2m > [22mTransaction Tools Integration[2m > [22mBulk Update Transactions Integration[2m > [22mshould successfully update multiple transactions with provided metadata
|
|
147
|
-
[90m·[39m [30m[45m integration:core [49m[39m src/tools/__tests__/transactionTools.integration.test.ts[2m > [22mTransaction Tools Integration[2m > [22mBulk Update Transactions Integration[2m > [22mshould successfully update transactions without metadata (using cache/API)
|
|
148
|
-
[90m·[39m [30m[45m integration:core [49m[39m src/tools/__tests__/transactionTools.integration.test.ts[2m > [22mTransaction Tools Integration[2m > [22mBulk Update Transactions Integration[2m > [22mshould provide before/after preview in dry_run mode
|
|
149
|
-
[90m·[39m [30m[45m integration:core [49m[39m src/tools/__tests__/transactionTools.integration.test.ts[2m > [22mTransaction Tools Integration[2m > [22mBulk Update Transactions Integration[2m > [22mshould handle partial failures gracefully
|
|
150
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Budget Management Integration[2m > [22m[2mshould handle complete budget listing and retrieval workflow
|
|
151
|
-
[22m[39mRate limit check for token_7f8358f9: 0/200 requests, remaining: 200, limited: false
|
|
152
|
-
|
|
153
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Budget Management Integration[2m > [22m[2mshould handle complete budget listing and retrieval workflow
|
|
154
|
-
[22m[39mRecorded request for token_7f8358f9: 1/200 requests
|
|
155
|
-
|
|
156
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Budget Management Integration[2m > [22m[2mshould handle complete budget listing and retrieval workflow
|
|
157
|
-
[22m[39mRate limit check for token_7f8358f9: 1/200 requests, remaining: 199, limited: false
|
|
158
|
-
[INFO] ynab:list_budgets | SUCCESS | 9ms | rate_limit_remaining:199
|
|
159
|
-
|
|
160
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Budget Management Integration[2m > [22m[2mshould handle complete budget listing and retrieval workflow
|
|
161
|
-
[22m[39mRate limit check for token_7f8358f9: 1/200 requests, remaining: 199, limited: false
|
|
162
|
-
|
|
163
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Budget Management Integration[2m > [22m[2mshould handle complete budget listing and retrieval workflow
|
|
164
|
-
[22m[39mRecorded request for token_7f8358f9: 2/200 requests
|
|
165
|
-
|
|
166
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Budget Management Integration[2m > [22m[2mshould handle complete budget listing and retrieval workflow
|
|
167
|
-
[22m[39mRate 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
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Budget Management Integration[2m > [22m[2mshould handle budget retrieval errors gracefully
|
|
171
|
-
[22m[39mRate limit check for token_7f8358f9: 2/200 requests, remaining: 198, limited: false
|
|
172
|
-
|
|
173
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Budget Management Integration[2m > [22m[2mshould handle budget retrieval errors gracefully
|
|
174
|
-
[22m[39mRecorded request for token_7f8358f9: 3/200 requests
|
|
175
|
-
|
|
176
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Budget Management Integration[2m > [22m[2mshould handle budget retrieval errors gracefully
|
|
177
|
-
[22m[39mRate 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
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Account Management Integration[2m > [22m[2mshould handle complete account workflow
|
|
181
|
-
[22m[39mRate limit check for token_7f8358f9: 3/200 requests, remaining: 197, limited: false
|
|
182
|
-
|
|
183
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Account Management Integration[2m > [22m[2mshould handle complete account workflow
|
|
184
|
-
[22m[39mRecorded request for token_7f8358f9: 4/200 requests
|
|
185
|
-
|
|
186
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Account Management Integration[2m > [22m[2mshould handle complete account workflow
|
|
187
|
-
[22m[39mRate limit check for token_7f8358f9: 4/200 requests, remaining: 196, limited: false
|
|
188
|
-
[INFO] ynab:list_accounts | SUCCESS | 3ms | rate_limit_remaining:196
|
|
189
|
-
|
|
190
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Account Management Integration[2m > [22m[2mshould handle complete account workflow
|
|
191
|
-
[22m[39mRate limit check for token_7f8358f9: 4/200 requests, remaining: 196, limited: false
|
|
192
|
-
|
|
193
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Account Management Integration[2m > [22m[2mshould handle complete account workflow
|
|
194
|
-
[22m[39mRecorded request for token_7f8358f9: 5/200 requests
|
|
195
|
-
|
|
196
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Account Management Integration[2m > [22m[2mshould handle complete account workflow
|
|
197
|
-
[22m[39mRate 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
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Account Management Integration[2m > [22m[2mshould handle complete account workflow
|
|
201
|
-
[22m[39mRate limit check for token_7f8358f9: 5/200 requests, remaining: 195, limited: false
|
|
202
|
-
|
|
203
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Account Management Integration[2m > [22m[2mshould handle complete account workflow
|
|
204
|
-
[22m[39mRecorded request for token_7f8358f9: 6/200 requests
|
|
205
|
-
|
|
206
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Account Management Integration[2m > [22m[2mshould handle complete account workflow
|
|
207
|
-
[22m[39mRate limit check for token_7f8358f9: 6/200 requests, remaining: 194, limited: false
|
|
208
|
-
[INFO] ynab:create_account | SUCCESS | 3ms | rate_limit_remaining:194
|
|
209
|
-
|
|
210
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Transaction Management Integration[2m > [22m[2mshould handle transaction filtering
|
|
211
|
-
[22m[39mRate limit check for token_7f8358f9: 6/200 requests, remaining: 194, limited: false
|
|
212
|
-
|
|
213
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Transaction Management Integration[2m > [22m[2mshould handle transaction filtering
|
|
214
|
-
[22m[39mRecorded request for token_7f8358f9: 7/200 requests
|
|
215
|
-
|
|
216
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Transaction Management Integration[2m > [22m[2mshould handle transaction filtering
|
|
217
|
-
[22m[39mRate 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
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Transaction Management Integration[2m > [22m[2mshould handle transaction filtering
|
|
221
|
-
[22m[39mRate limit check for token_7f8358f9: 7/200 requests, remaining: 193, limited: false
|
|
222
|
-
|
|
223
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Transaction Management Integration[2m > [22m[2mshould handle transaction filtering
|
|
224
|
-
[22m[39mRecorded request for token_7f8358f9: 8/200 requests
|
|
225
|
-
|
|
226
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Transaction Management Integration[2m > [22m[2mshould handle transaction filtering
|
|
227
|
-
[22m[39mRate limit check for token_7f8358f9: 8/200 requests, remaining: 192, limited: false
|
|
228
|
-
[INFO] ynab:list_transactions | SUCCESS | 0ms | rate_limit_remaining:192
|
|
229
|
-
|
|
230
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Transaction Management Integration[2m > [22m[2mshould handle transaction filtering
|
|
231
|
-
[22m[39mRate limit check for token_7f8358f9: 8/200 requests, remaining: 192, limited: false
|
|
232
|
-
|
|
233
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Transaction Management Integration[2m > [22m[2mshould handle transaction filtering
|
|
234
|
-
[22m[39mRecorded request for token_7f8358f9: 9/200 requests
|
|
235
|
-
|
|
236
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Transaction Management Integration[2m > [22m[2mshould handle transaction filtering
|
|
237
|
-
[22m[39mRate 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
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/__tests__/comprehensive.integration.test.ts[2m > [22mYNAB utils mock[2m > [22mconverts milliunits using SDK rounding rules[32m 4[2mms[22m[39m
|
|
241
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/__tests__/comprehensive.integration.test.ts[2m > [22mYNAB MCP Server - Comprehensive Integration Tests[2m > [22mComplete Budget Management Integration[2m > [22mshould handle complete budget listing and retrieval workflow[32m 44[2mms[22m[39m
|
|
242
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/__tests__/comprehensive.integration.test.ts[2m > [22mYNAB MCP Server - Comprehensive Integration Tests[2m > [22mComplete Budget Management Integration[2m > [22mshould handle budget retrieval errors gracefully[32m 13[2mms[22m[39m
|
|
243
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/__tests__/comprehensive.integration.test.ts[2m > [22mYNAB MCP Server - Comprehensive Integration Tests[2m > [22mComplete Account Management Integration[2m > [22mshould handle complete account workflow[32m 21[2mms[22m[39m
|
|
244
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/__tests__/comprehensive.integration.test.ts[2m > [22mYNAB MCP Server - Comprehensive Integration Tests[2m > [22mComplete Transaction Management Integration[2m > [22mshould handle complete transaction workflow
|
|
245
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/__tests__/comprehensive.integration.test.ts[2m > [22mYNAB MCP Server - Comprehensive Integration Tests[2m > [22mComplete Transaction Management Integration[2m > [22mshould handle transaction filtering[32m 12[2mms[22m[39m
|
|
246
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Category Management Integration[2m > [22m[2mshould handle complete category workflow
|
|
247
|
-
[22m[39mRate limit check for token_7f8358f9: 9/200 requests, remaining: 191, limited: false
|
|
248
|
-
|
|
249
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Category Management Integration[2m > [22m[2mshould handle complete category workflow
|
|
250
|
-
[22m[39mRecorded request for token_7f8358f9: 10/200 requests
|
|
251
|
-
|
|
252
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Category Management Integration[2m > [22m[2mshould handle complete category workflow
|
|
253
|
-
[22m[39mRate limit check for token_7f8358f9: 10/200 requests, remaining: 190, limited: false
|
|
254
|
-
[INFO] ynab:list_categories | SUCCESS | 5ms | rate_limit_remaining:190
|
|
255
|
-
|
|
256
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Category Management Integration[2m > [22m[2mshould handle complete category workflow
|
|
257
|
-
[22m[39mRate limit check for token_7f8358f9: 10/200 requests, remaining: 190, limited: false
|
|
258
|
-
|
|
259
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Category Management Integration[2m > [22m[2mshould handle complete category workflow
|
|
260
|
-
[22m[39mRecorded request for token_7f8358f9: 11/200 requests
|
|
261
|
-
|
|
262
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Category Management Integration[2m > [22m[2mshould handle complete category workflow
|
|
263
|
-
[22m[39mRate 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
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Category Management Integration[2m > [22m[2mshould handle complete category workflow
|
|
267
|
-
[22m[39mRate limit check for token_7f8358f9: 11/200 requests, remaining: 189, limited: false
|
|
268
|
-
|
|
269
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Category Management Integration[2m > [22m[2mshould handle complete category workflow
|
|
270
|
-
[22m[39mRecorded request for token_7f8358f9: 12/200 requests
|
|
271
|
-
|
|
272
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Category Management Integration[2m > [22m[2mshould handle complete category workflow
|
|
273
|
-
[22m[39mRate limit check for token_7f8358f9: 12/200 requests, remaining: 188, limited: false
|
|
274
|
-
[INFO] ynab:update_category | SUCCESS | 2ms | rate_limit_remaining:188
|
|
275
|
-
|
|
276
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/server-startup.integration.test.ts[2m > [22mServer Startup and Transport Integration[2m > [22mServer Initialization[2m > [22mshould successfully initialize server with valid configuration[32m 25[2mms[22m[39m
|
|
277
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/server-startup.integration.test.ts[2m > [22mServer Startup and Transport Integration[2m > [22mServer Initialization[2m > [22mshould fail initialization with missing access token[32m 8[2mms[22m[39m
|
|
278
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/server-startup.integration.test.ts[2m > [22mServer Startup and Transport Integration[2m > [22mServer Initialization[2m > [22mshould fail initialization with invalid access token format[32m 5[2mms[22m[39m
|
|
279
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Utility Tools Integration[2m > [22m[2mshould handle user information retrieval
|
|
280
|
-
[22m[39mRate limit check for token_7f8358f9: 12/200 requests, remaining: 188, limited: false
|
|
281
|
-
|
|
282
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Utility Tools Integration[2m > [22m[2mshould handle user information retrieval
|
|
283
|
-
[22m[39mRecorded request for token_7f8358f9: 13/200 requests
|
|
284
|
-
|
|
285
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Utility Tools Integration[2m > [22m[2mshould handle user information retrieval
|
|
286
|
-
[22m[39mRate limit check for token_7f8358f9: 13/200 requests, remaining: 187, limited: false
|
|
287
|
-
[INFO] ynab:get_user | SUCCESS | 1ms | rate_limit_remaining:187
|
|
288
|
-
|
|
289
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Utility Tools Integration[2m > [22m[2mshould handle amount conversion
|
|
290
|
-
[22m[39mRate limit check for token_7f8358f9: 13/200 requests, remaining: 187, limited: false
|
|
291
|
-
|
|
292
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Utility Tools Integration[2m > [22m[2mshould handle amount conversion
|
|
293
|
-
[22m[39mRecorded request for token_7f8358f9: 14/200 requests
|
|
294
|
-
|
|
295
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Utility Tools Integration[2m > [22m[2mshould handle amount conversion
|
|
296
|
-
[22m[39mRate limit check for token_7f8358f9: 14/200 requests, remaining: 186, limited: false
|
|
297
|
-
[INFO] ynab:convert_amount | SUCCESS | 1ms | rate_limit_remaining:186
|
|
298
|
-
|
|
299
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Utility Tools Integration[2m > [22m[2mshould handle amount conversion
|
|
300
|
-
[22m[39mRate limit check for token_7f8358f9: 14/200 requests, remaining: 186, limited: false
|
|
301
|
-
|
|
302
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Utility Tools Integration[2m > [22m[2mshould handle amount conversion
|
|
303
|
-
[22m[39mRecorded request for token_7f8358f9: 15/200 requests
|
|
304
|
-
|
|
305
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mComplete Utility Tools Integration[2m > [22m[2mshould handle amount conversion
|
|
306
|
-
[22m[39mRate limit check for token_7f8358f9: 15/200 requests, remaining: 185, limited: false
|
|
307
|
-
[INFO] ynab:convert_amount | SUCCESS | 1ms | rate_limit_remaining:185
|
|
308
|
-
|
|
309
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22mYNABMCPServer[2m > [22mConstructor and Environment Validation[2m > [22mshould create server instance with valid access token[32m 25[2mms[22m[39m
|
|
310
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22mYNABMCPServer[2m > [22mConstructor and Environment Validation[2m > [22mshould throw ValidationError when YNAB_ACCESS_TOKEN is missing[32m 9[2mms[22m[39m
|
|
311
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22mYNABMCPServer[2m > [22mConstructor and Environment Validation[2m > [22mshould throw ValidationError when YNAB_ACCESS_TOKEN is empty string[32m 6[2mms[22m[39m
|
|
312
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22mYNABMCPServer[2m > [22mConstructor and Environment Validation[2m > [22mshould throw ValidationError when YNAB_ACCESS_TOKEN is only whitespace[32m 6[2mms[22m[39m
|
|
313
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22mYNABMCPServer[2m > [22mConstructor and Environment Validation[2m > [22mshould trim whitespace from access token[32m 10[2mms[22m[39m
|
|
314
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mError Handling Integration[2m > [22m[2mshould handle various API error scenarios
|
|
315
|
-
[22m[39mRate limit check for token_7f8358f9: 15/200 requests, remaining: 185, limited: false
|
|
316
|
-
|
|
317
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mError Handling Integration[2m > [22m[2mshould handle various API error scenarios
|
|
318
|
-
[22m[39mRecorded request for token_7f8358f9: 16/200 requests
|
|
319
|
-
|
|
320
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mError Handling Integration[2m > [22m[2mshould handle various API error scenarios
|
|
321
|
-
[22m[39mRate limit check for token_7f8358f9: 16/200 requests, remaining: 184, limited: false
|
|
322
|
-
[INFO] ynab:list_budgets | SUCCESS | 1ms | rate_limit_remaining:184
|
|
323
|
-
|
|
324
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mError Handling Integration[2m > [22m[2mshould handle various API error scenarios
|
|
325
|
-
[22m[39mRate limit check for token_7f8358f9: 16/200 requests, remaining: 184, limited: false
|
|
326
|
-
|
|
327
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mError Handling Integration[2m > [22m[2mshould handle various API error scenarios
|
|
328
|
-
[22m[39mRecorded request for token_7f8358f9: 17/200 requests
|
|
329
|
-
|
|
330
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mError Handling Integration[2m > [22m[2mshould handle various API error scenarios
|
|
331
|
-
[22m[39mRate limit check for token_7f8358f9: 17/200 requests, remaining: 183, limited: false
|
|
332
|
-
[INFO] ynab:get_budget | SUCCESS | 1ms | rate_limit_remaining:183
|
|
333
|
-
|
|
334
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mError Handling Integration[2m > [22m[2mshould validate input parameters
|
|
335
|
-
[22m[39mRate limit check for token_7f8358f9: 17/200 requests, remaining: 183, limited: false
|
|
336
|
-
[ERROR] ynab:get_budget | FAILED | 0ms | rate_limit_remaining:183 | error:"Validation failed: Validation error: Invalid input: expected string, received undefined at "budget_id""
|
|
337
|
-
|
|
338
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mCaching Integration Tests[2m > [22m[2mshould invalidate cache on write operations
|
|
339
|
-
[22m[39mRate limit check for token_7f8358f9: 17/200 requests, remaining: 183, limited: false
|
|
340
|
-
|
|
341
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mCaching Integration Tests[2m > [22m[2mshould invalidate cache on write operations
|
|
342
|
-
[22m[39mRecorded request for token_7f8358f9: 18/200 requests
|
|
343
|
-
|
|
344
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mCaching Integration Tests[2m > [22m[2mshould invalidate cache on write operations
|
|
345
|
-
[22m[39mRate limit check for token_7f8358f9: 18/200 requests, remaining: 182, limited: false
|
|
346
|
-
[INFO] ynab:list_accounts | SUCCESS | 2ms | rate_limit_remaining:182
|
|
347
|
-
|
|
348
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mCaching Integration Tests[2m > [22m[2mshould invalidate cache on write operations
|
|
349
|
-
[22m[39mRate limit check for token_7f8358f9: 18/200 requests, remaining: 182, limited: false
|
|
350
|
-
|
|
351
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mCaching Integration Tests[2m > [22m[2mshould invalidate cache on write operations
|
|
352
|
-
[22m[39mRecorded request for token_7f8358f9: 19/200 requests
|
|
353
|
-
|
|
354
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mCaching Integration Tests[2m > [22m[2mshould invalidate cache on write operations
|
|
355
|
-
[22m[39mRate limit check for token_7f8358f9: 19/200 requests, remaining: 181, limited: false
|
|
356
|
-
[INFO] ynab:create_account | SUCCESS | 1ms | rate_limit_remaining:181
|
|
357
|
-
|
|
358
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mCaching Integration Tests[2m > [22m[2mshould invalidate cache on write operations
|
|
359
|
-
[22m[39mRate limit check for token_7f8358f9: 19/200 requests, remaining: 181, limited: false
|
|
360
|
-
|
|
361
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mCaching Integration Tests[2m > [22m[2mshould invalidate cache on write operations
|
|
362
|
-
[22m[39mRecorded request for token_7f8358f9: 20/200 requests
|
|
363
|
-
|
|
364
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mCaching Integration Tests[2m > [22m[2mshould invalidate cache on write operations
|
|
365
|
-
[22m[39mRate limit check for token_7f8358f9: 20/200 requests, remaining: 180, limited: false
|
|
366
|
-
[INFO] ynab:list_accounts | SUCCESS | 1ms | rate_limit_remaining:180
|
|
367
|
-
|
|
368
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mCaching Integration Tests[2m > [22m[2mshould handle cache warming after setting default budget
|
|
369
|
-
[22m[39mRate limit check for token_7f8358f9: 20/200 requests, remaining: 180, limited: false
|
|
370
|
-
|
|
371
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mCaching Integration Tests[2m > [22m[2mshould handle cache warming after setting default budget
|
|
372
|
-
[22m[39mRecorded request for token_7f8358f9: 21/200 requests
|
|
373
|
-
|
|
374
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mCaching Integration Tests[2m > [22m[2mshould handle cache warming after setting default budget
|
|
375
|
-
[22m[39mRate 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
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mCaching Integration Tests[2m > [22m[2mshould handle cache clear operation
|
|
379
|
-
[22m[39mRate limit check for token_7f8358f9: 21/200 requests, remaining: 179, limited: false
|
|
380
|
-
|
|
381
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mCaching Integration Tests[2m > [22m[2mshould handle cache clear operation
|
|
382
|
-
[22m[39mRecorded request for token_7f8358f9: 22/200 requests
|
|
383
|
-
|
|
384
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mCaching Integration Tests[2m > [22m[2mshould handle cache clear operation
|
|
385
|
-
[22m[39mRate limit check for token_7f8358f9: 22/200 requests, remaining: 178, limited: false
|
|
386
|
-
[INFO] ynab:list_budgets | SUCCESS | 1ms | rate_limit_remaining:178
|
|
387
|
-
|
|
388
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mCaching Integration Tests[2m > [22m[2mshould handle cache clear operation
|
|
389
|
-
[22m[39mRate limit check for token_7f8358f9: 22/200 requests, remaining: 178, limited: false
|
|
390
|
-
|
|
391
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mCaching Integration Tests[2m > [22m[2mshould handle cache clear operation
|
|
392
|
-
[22m[39mRecorded request for token_7f8358f9: 23/200 requests
|
|
393
|
-
|
|
394
|
-
[90mstderr[2m | src/__tests__/comprehensive.integration.test.ts[2m > [22m[2mYNAB MCP Server - Comprehensive Integration Tests[2m > [22m[2mCaching Integration Tests[2m > [22m[2mshould handle cache clear operation
|
|
395
|
-
[22m[39mRate limit check for token_7f8358f9: 23/200 requests, remaining: 177, limited: false
|
|
396
|
-
[INFO] ynab:clear_cache | SUCCESS | 1ms | rate_limit_remaining:177
|
|
397
|
-
|
|
398
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/__tests__/comprehensive.integration.test.ts[2m > [22mYNAB MCP Server - Comprehensive Integration Tests[2m > [22mComplete Category Management Integration[2m > [22mshould handle complete category workflow[32m 23[2mms[22m[39m
|
|
399
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/__tests__/comprehensive.integration.test.ts[2m > [22mYNAB MCP Server - Comprehensive Integration Tests[2m > [22mComplete Utility Tools Integration[2m > [22mshould handle user information retrieval[32m 7[2mms[22m[39m
|
|
400
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/__tests__/comprehensive.integration.test.ts[2m > [22mYNAB MCP Server - Comprehensive Integration Tests[2m > [22mComplete Utility Tools Integration[2m > [22mshould handle amount conversion[32m 8[2mms[22m[39m
|
|
401
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/__tests__/comprehensive.integration.test.ts[2m > [22mYNAB MCP Server - Comprehensive Integration Tests[2m > [22mError Handling Integration[2m > [22mshould handle various API error scenarios[32m 10[2mms[22m[39m
|
|
402
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/__tests__/comprehensive.integration.test.ts[2m > [22mYNAB MCP Server - Comprehensive Integration Tests[2m > [22mError Handling Integration[2m > [22mshould validate input parameters[32m 8[2mms[22m[39m
|
|
403
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/__tests__/comprehensive.integration.test.ts[2m > [22mYNAB MCP Server - Comprehensive Integration Tests[2m > [22mCaching Integration Tests[2m > [22mshould cache budget list requests and improve performance on subsequent calls
|
|
404
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/__tests__/comprehensive.integration.test.ts[2m > [22mYNAB MCP Server - Comprehensive Integration Tests[2m > [22mCaching Integration Tests[2m > [22mshould invalidate cache on write operations[32m 8[2mms[22m[39m
|
|
405
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/__tests__/comprehensive.integration.test.ts[2m > [22mYNAB MCP Server - Comprehensive Integration Tests[2m > [22mCaching Integration Tests[2m > [22mshould not cache filtered transaction requests
|
|
406
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/__tests__/comprehensive.integration.test.ts[2m > [22mYNAB MCP Server - Comprehensive Integration Tests[2m > [22mCaching Integration Tests[2m > [22mshould handle cache warming after setting default budget[32m 7[2mms[22m[39m
|
|
407
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/__tests__/comprehensive.integration.test.ts[2m > [22mYNAB MCP Server - Comprehensive Integration Tests[2m > [22mCaching Integration Tests[2m > [22mshould handle cache clear operation[32m 10[2mms[22m[39m
|
|
408
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/__tests__/comprehensive.integration.test.ts[2m > [22mYNAB MCP Server - Comprehensive Integration Tests[2m > [22mCaching Integration Tests[2m > [22mshould respect cache TTL and return fresh data after expiration
|
|
409
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/reconciliation/__tests__/reconciliation.delta.integration.test.ts[2m > [22mReconciliation delta isolation[2m > [22muses full-fetch helpers and exposes audit metadata
|
|
410
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/tools/reconciliation/__tests__/reconciliation.delta.integration.test.ts[2m > [22mReconciliation delta isolation[2m > [22mcan opt into delta-backed fetches when force_full_refresh is false
|
|
411
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/tools/__tests__/utilityTools.integration.test.ts[2m > [22mUtility Tools Integration Tests[2m > [22mhandleGetUser[2m > [22mshould retrieve user information from YNAB API[33m 367[2mms[22m[39m
|
|
412
|
-
[90mstderr[2m | src/tools/__tests__/budgetTools.integration.test.ts[2m > [22m[2mBudget Tools Integration[2m > [22m[2mhandleListBudgets[2m > [22m[2mshould successfully list budgets from real API
|
|
413
|
-
[22m[39m✅ Successfully listed 7 budgets
|
|
414
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/tools/__tests__/budgetTools.integration.test.ts[2m > [22mBudget Tools Integration[2m > [22mhandleListBudgets[2m > [22mshould successfully list budgets from real API[33m 384[2mms[22m[39m
|
|
415
|
-
|
|
416
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/tools/__tests__/utilityTools.integration.test.ts[2m > [22mUtility Tools Integration Tests[2m > [22mhandleConvertAmount[2m > [22mshould convert various dollar amounts to milliunits[32m 3[2mms[22m[39m
|
|
417
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/tools/__tests__/utilityTools.integration.test.ts[2m > [22mUtility Tools Integration Tests[2m > [22mhandleConvertAmount[2m > [22mshould convert various milliunit amounts to dollars[32m 3[2mms[22m[39m
|
|
418
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/tools/__tests__/utilityTools.integration.test.ts[2m > [22mUtility Tools Integration Tests[2m > [22mhandleConvertAmount[2m > [22mshould handle precision edge cases[32m 1[2mms[22m[39m
|
|
419
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/tools/__tests__/budgetTools.delta.integration.test.ts[2m > [22mDelta-backed budget tool handler[2m > [22mserves cached budget summaries on the second invocation[33m 401[2mms[22m[39m
|
|
420
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/server-startup.integration.test.ts[2m > [22mServer Startup and Transport Integration[2m > [22mServer Startup Validation[2m > [22mshould validate YNAB token during startup[33m 361[2mms[22m[39m
|
|
421
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22mYNABMCPServer[2m > [22mReal YNAB API Integration[2m > [22mshould successfully validate real YNAB token[33m 370[2mms[22m[39m
|
|
422
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mReal YNAB API Integration[2m > [22m[2mshould successfully get user information
|
|
423
|
-
[22m[39m✅ Connected to YNAB user: 495de152-d100-4404-a9b4-d6115e038294
|
|
424
|
-
|
|
425
|
-
[90mstderr[2m | src/tools/__tests__/budgetTools.integration.test.ts[2m > [22m[2mBudget Tools Integration[2m > [22m[2mhandleGetBudget[2m > [22m[2mshould successfully get budget details from real API
|
|
426
|
-
[22m[39m✅ Successfully retrieved budget: test plan
|
|
427
|
-
- 318 accounts
|
|
428
|
-
- 65 categories
|
|
429
|
-
|
|
430
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/tools/__tests__/budgetTools.integration.test.ts[2m > [22mBudget Tools Integration[2m > [22mhandleGetBudget[2m > [22mshould successfully get budget details from real API[33m 346[2mms[22m[39m
|
|
431
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22mYNABMCPServer[2m > [22mReal YNAB API Integration[2m > [22mshould successfully get user information[32m 260[2mms[22m[39m
|
|
432
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mReal YNAB API Integration[2m > [22m[2mshould successfully get budgets
|
|
433
|
-
[22m[39m✅ Found 7 budget(s)
|
|
434
|
-
- test plan (7b47d8bb-ce4c-40c0-a9eb-c6d715af9a76)
|
|
435
|
-
- 8 Laguna (65b65f40-da07-4037-af17-d6559b9145af)
|
|
436
|
-
- going to mexico (Archived on 2025-01-24) (b371d9f6-94fd-48a1-9b19-f51ab17436f1)
|
|
437
|
-
- 2025 (bf00f94f-f532-4b2c-a39c-e8d9a963effd)
|
|
438
|
-
- 1376 W 14th (9e4e96bf-f857-4c84-9f07-1e201de1bd40)
|
|
439
|
-
- SRC (6d225b60-eaf5-4157-bd7a-9995b3e1b608)
|
|
440
|
-
- KYS (c402250b-c77e-4739-a1c4-d087d02693d5)
|
|
441
|
-
|
|
442
|
-
[90mstderr[2m | src/tools/__tests__/budgetTools.integration.test.ts[2m > [22m[2mBudget Tools Integration[2m > [22m[2mhandleGetBudget[2m > [22m[2mshould handle invalid budget ID gracefully
|
|
443
|
-
[22m[39m✅ Correctly handled invalid budget ID: Budget not found
|
|
444
|
-
|
|
445
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/tools/__tests__/budgetTools.integration.test.ts[2m > [22mBudget Tools Integration[2m > [22mhandleGetBudget[2m > [22mshould handle invalid budget ID gracefully[32m 98[2mms[22m[39m
|
|
446
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/server-startup.integration.test.ts[2m > [22mServer Startup and Transport Integration[2m > [22mServer Startup Validation[2m > [22mshould handle invalid token gracefully during startup[32m 291[2mms[22m[39m
|
|
447
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22mYNABMCPServer[2m > [22mReal YNAB API Integration[2m > [22mshould successfully get budgets[32m 109[2mms[22m[39m
|
|
448
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/server-startup.integration.test.ts[2m > [22mServer Startup and Transport Integration[2m > [22mServer Startup Validation[2m > [22mshould provide detailed error messages for authentication failures[32m 188[2mms[22m[39m
|
|
449
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/server-startup.integration.test.ts[2m > [22mServer Startup and Transport Integration[2m > [22mServer Startup Validation[2m > [22mshould surface malformed token responses as AuthenticationError[32m 6[2mms[22m[39m
|
|
450
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/server-startup.integration.test.ts[2m > [22mServer Startup and Transport Integration[2m > [22mTool Registration[2m > [22mshould register all expected YNAB tools[32m 4[2mms[22m[39m
|
|
451
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/server-startup.integration.test.ts[2m > [22mServer Startup and Transport Integration[2m > [22mTool Registration[2m > [22mshould register budget management tools[32m 5[2mms[22m[39m
|
|
452
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/server-startup.integration.test.ts[2m > [22mServer Startup and Transport Integration[2m > [22mTool Registration[2m > [22mshould register account management tools[32m 5[2mms[22m[39m
|
|
453
|
-
[90mstderr[2m | src/tools/reconciliation/__tests__/executor.integration.test.ts[2m > [22m[2mReconciliation Executor - Bulk Create Integration[2m > [22m[2mcreates 10 transactions via bulk mode
|
|
454
|
-
[22m[39m⏭️ Skipping test due to YNAB API rate limit
|
|
455
|
-
|
|
456
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22mYNABMCPServer[2m > [22mReal YNAB API Integration[2m > [22mshould handle invalid token gracefully[32m 99[2mms[22m[39m
|
|
457
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/server-startup.integration.test.ts[2m > [22mServer Startup and Transport Integration[2m > [22mTool Registration[2m > [22mshould register transaction management tools[32m 5[2mms[22m[39m
|
|
458
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/server-startup.integration.test.ts[2m > [22mServer Startup and Transport Integration[2m > [22mTool Registration[2m > [22mshould register category management tools[32m 5[2mms[22m[39m
|
|
459
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/server-startup.integration.test.ts[2m > [22mServer Startup and Transport Integration[2m > [22mTool Registration[2m > [22mshould register payee management tools[32m 5[2mms[22m[39m
|
|
460
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/server-startup.integration.test.ts[2m > [22mServer Startup and Transport Integration[2m > [22mTool Registration[2m > [22mshould register utility tools[32m 4[2mms[22m[39m
|
|
461
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/tools/reconciliation/__tests__/executor.integration.test.ts[2m > [22mReconciliation Executor - Bulk Create Integration[2m > [22mcreates 10 transactions via bulk mode[32m 218[2mms[22m[39m
|
|
462
|
-
[90mstderr[2m | src/tools/reconciliation/__tests__/executor.integration.test.ts[2m > [22m[2mReconciliation Executor - Bulk Create Integration[2m > [22m[2mreports duplicates when import IDs already exist
|
|
463
|
-
[22m[39m⏭️ Skipping test due to YNAB API rate limit
|
|
464
|
-
|
|
465
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22mYNABMCPServer[2m > [22mReal YNAB API Integration[2m > [22mshould successfully start and connect MCP server[32m 196[2mms[22m[39m
|
|
466
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/server-startup.integration.test.ts[2m > [22mServer Startup and Transport Integration[2m > [22mTransport Setup[2m > [22mshould attempt to connect with StdioServerTransport[32m 196[2mms[22m[39m
|
|
467
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/tools/reconciliation/__tests__/executor.integration.test.ts[2m > [22mReconciliation Executor - Bulk Create Integration[2m > [22mreports duplicates when import IDs already exist[32m 204[2mms[22m[39m
|
|
468
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mMCP Server Functionality[2m > [22m[2mshould execute get_user tool via the registry
|
|
469
|
-
[22m[39mRate limit check for token_74700d80: 0/200 requests, remaining: 200, limited: false
|
|
470
|
-
|
|
471
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mMCP Server Functionality[2m > [22m[2mshould execute get_user tool via the registry
|
|
472
|
-
[22m[39mRecorded request for token_74700d80: 1/200 requests
|
|
473
|
-
|
|
474
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/server-startup.integration.test.ts[2m > [22mServer Startup and Transport Integration[2m > [22mTransport Setup[2m > [22mshould handle transport connection errors gracefully[32m 98[2mms[22m[39m
|
|
475
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/server-startup.integration.test.ts[2m > [22mServer Startup and Transport Integration[2m > [22mTransport Setup[2m > [22mshould validate token before attempting transport connection[32m 96[2mms[22m[39m
|
|
476
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22mYNABMCPServer[2m > [22mReal YNAB API Integration[2m > [22mshould handle multiple rapid API calls without rate limiting issues[32m 134[2mms[22m[39m
|
|
477
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22mYNABMCPServer[2m > [22mMCP Server Functionality[2m > [22mshould expose registered tools via the registry[32m 16[2mms[22m[39m
|
|
478
|
-
[90mstderr[2m | src/tools/reconciliation/__tests__/executor.integration.test.ts[2m > [22m[2mReconciliation Executor - Bulk Create Integration[2m > [22m[2mprocesses 150 transactions across multiple chunks
|
|
479
|
-
[22m[39m⏭️ Skipping test due to YNAB API rate limit
|
|
480
|
-
|
|
481
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mMCP Server Functionality[2m > [22m[2mshould execute get_user tool via the registry
|
|
482
|
-
[22m[39mRate limit check for token_74700d80: 1/200 requests, remaining: 199, limited: false
|
|
483
|
-
[INFO] ynab:get_user | SUCCESS | 96ms | rate_limit_remaining:199
|
|
484
|
-
|
|
485
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mMCP Server Functionality[2m > [22m[2mshould set and retrieve default budget using tools
|
|
486
|
-
[22m[39mRate limit check for token_74700d80: 1/200 requests, remaining: 199, limited: false
|
|
487
|
-
|
|
488
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mMCP Server Functionality[2m > [22m[2mshould set and retrieve default budget using tools
|
|
489
|
-
[22m[39mRecorded request for token_74700d80: 2/200 requests
|
|
490
|
-
|
|
491
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/server-startup.integration.test.ts[2m > [22mServer Startup and Transport Integration[2m > [22mError Reporting[2m > [22mshould report configuration errors clearly[32m 3[2mms[22m[39m
|
|
492
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/server-startup.integration.test.ts[2m > [22mServer Startup and Transport Integration[2m > [22mError Reporting[2m > [22mshould report authentication errors clearly[32m 95[2mms[22m[39m
|
|
493
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22mYNABMCPServer[2m > [22mMCP Server Functionality[2m > [22mshould execute get_user tool via the registry[32m 101[2mms[22m[39m
|
|
494
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mMCP Server Functionality[2m > [22m[2mshould set and retrieve default budget using tools
|
|
495
|
-
[22m[39mRate limit check for token_74700d80: 2/200 requests, remaining: 198, limited: false
|
|
496
|
-
[INFO] ynab:list_budgets | SUCCESS | 103ms | rate_limit_remaining:198
|
|
497
|
-
|
|
498
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mMCP Server Functionality[2m > [22m[2mshould set and retrieve default budget using tools
|
|
499
|
-
[22m[39mRate limit check for token_74700d80: 2/200 requests, remaining: 198, limited: false
|
|
500
|
-
|
|
501
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mMCP Server Functionality[2m > [22m[2mshould set and retrieve default budget using tools
|
|
502
|
-
[22m[39mRecorded request for token_74700d80: 3/200 requests
|
|
503
|
-
|
|
504
|
-
[90mstderr[2m | src/server/__tests__/server-startup.integration.test.ts[2m > [22m[2mServer Startup and Transport Integration[2m > [22m[2mError Reporting[2m > [22m[2mshould handle startup errors without exposing sensitive information
|
|
505
|
-
[22m[39mServer startup failed: Token validation failed: [object Object]
|
|
506
|
-
|
|
507
|
-
[90mstderr[2m | src/tools/reconciliation/__tests__/executor.integration.test.ts[2m > [22m[2mReconciliation Executor - Bulk Create Integration[2m > [22m[2mprocesses 20 transactions in under 8 seconds
|
|
508
|
-
[22m[39m⏭️ Skipping test due to YNAB API rate limit
|
|
509
|
-
|
|
510
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/tools/reconciliation/__tests__/executor.integration.test.ts[2m > [22mReconciliation Executor - Bulk Create Integration[2m > [22mprocesses 150 transactions across multiple chunks[32m 214[2mms[22m[39m
|
|
511
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/tools/reconciliation/__tests__/executor.integration.test.ts[2m > [22mReconciliation Executor - Bulk Create Integration[2m > [22mprocesses 20 transactions in under 8 seconds[32m 197[2mms[22m[39m
|
|
512
|
-
[90mstderr[2m | src/server/__tests__/server-startup.integration.test.ts[2m > [22m[2mServer Startup and Transport Integration[2m > [22m[2mError Reporting[2m > [22m[2mshould handle startup errors without exposing sensitive information
|
|
513
|
-
[22m[39mServer startup failed: Token validation failed: [object Object]
|
|
514
|
-
|
|
515
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mMCP Server Functionality[2m > [22m[2mshould set and retrieve default budget using tools
|
|
516
|
-
[22m[39mRate limit check for token_74700d80: 3/200 requests, remaining: 197, limited: false
|
|
517
|
-
[INFO] ynab:set_default_budget | SUCCESS | 271ms | rate_limit_remaining:197
|
|
518
|
-
|
|
519
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mMCP Server Functionality[2m > [22m[2mshould set and retrieve default budget using tools
|
|
520
|
-
[22m[39mRate limit check for token_74700d80: 3/200 requests, remaining: 197, limited: false
|
|
521
|
-
|
|
522
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mMCP Server Functionality[2m > [22m[2mshould set and retrieve default budget using tools
|
|
523
|
-
[22m[39mRecorded request for token_74700d80: 4/200 requests
|
|
524
|
-
|
|
525
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mMCP Server Functionality[2m > [22m[2mshould set and retrieve default budget using tools
|
|
526
|
-
[22m[39mRate limit check for token_74700d80: 4/200 requests, remaining: 196, limited: false
|
|
527
|
-
[INFO] ynab:get_default_budget | SUCCESS | 1ms | rate_limit_remaining:196
|
|
528
|
-
|
|
529
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mMCP Server Functionality[2m > [22m[2mshould provide diagnostic info with requested sections
|
|
530
|
-
[22m[39mRate limit check for token_74700d80: 4/200 requests, remaining: 196, limited: false
|
|
531
|
-
|
|
532
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mMCP Server Functionality[2m > [22m[2mshould provide diagnostic info with requested sections
|
|
533
|
-
[22m[39mRecorded request for token_74700d80: 5/200 requests
|
|
534
|
-
|
|
535
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mMCP Server Functionality[2m > [22m[2mshould provide diagnostic info with requested sections
|
|
536
|
-
[22m[39mRate limit check for token_74700d80: 5/200 requests, remaining: 195, limited: false
|
|
537
|
-
[INFO] ynab:diagnostic_info | SUCCESS | 6ms | rate_limit_remaining:195
|
|
538
|
-
|
|
539
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mMCP Server Functionality[2m > [22m[2mshould clear cache using the clear_cache tool
|
|
540
|
-
[22m[39mRate limit check for token_74700d80: 5/200 requests, remaining: 195, limited: false
|
|
541
|
-
|
|
542
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mMCP Server Functionality[2m > [22m[2mshould clear cache using the clear_cache tool
|
|
543
|
-
[22m[39mRecorded request for token_74700d80: 6/200 requests
|
|
544
|
-
|
|
545
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mMCP Server Functionality[2m > [22m[2mshould clear cache using the clear_cache tool
|
|
546
|
-
[22m[39mRate limit check for token_74700d80: 6/200 requests, remaining: 194, limited: false
|
|
547
|
-
[INFO] ynab:clear_cache | SUCCESS | 1ms | rate_limit_remaining:194
|
|
548
|
-
|
|
549
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mMCP Server Functionality[2m > [22m[2mshould include enhanced cache metrics in real diagnostic collection
|
|
550
|
-
[22m[39mRate limit check for token_74700d80: 6/200 requests, remaining: 194, limited: false
|
|
551
|
-
|
|
552
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mMCP Server Functionality[2m > [22m[2mshould include enhanced cache metrics in real diagnostic collection
|
|
553
|
-
[22m[39mRecorded request for token_74700d80: 7/200 requests
|
|
554
|
-
|
|
555
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/server-startup.integration.test.ts[2m > [22mServer Startup and Transport Integration[2m > [22mError Reporting[2m > [22mshould handle startup errors without exposing sensitive information[33m 307[2mms[22m[39m
|
|
556
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/server-startup.integration.test.ts[2m > [22mServer Startup and Transport Integration[2m > [22mGraceful Shutdown[2m > [22mshould handle process signals gracefully[32m 5[2mms[22m[39m
|
|
557
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/server-startup.integration.test.ts[2m > [22mServer Startup and Transport Integration[2m > [22mGraceful Shutdown[2m > [22mshould clean up resources on shutdown[32m 5[2mms[22m[39m
|
|
558
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22mYNABMCPServer[2m > [22mMCP Server Functionality[2m > [22mshould set and retrieve default budget using tools[33m 380[2mms[22m[39m
|
|
559
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22mYNABMCPServer[2m > [22mMCP Server Functionality[2m > [22mshould provide diagnostic info with requested sections[32m 11[2mms[22m[39m
|
|
560
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22mYNABMCPServer[2m > [22mMCP Server Functionality[2m > [22mshould clear cache using the clear_cache tool[32m 6[2mms[22m[39m
|
|
561
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22mYNABMCPServer[2m > [22mMCP Server Functionality[2m > [22mshould track cache performance metrics during real tool execution[32m 5[2mms[22m[39m
|
|
562
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22mYNABMCPServer[2m > [22mMCP Server Functionality[2m > [22mshould demonstrate LRU eviction with real cache operations[32m 4[2mms[22m[39m
|
|
563
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22mYNABMCPServer[2m > [22mMCP Server Functionality[2m > [22mshould show cache hit rate improvement with repeated operations[32m 5[2mms[22m[39m
|
|
564
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22mYNABMCPServer[2m > [22mMCP Server Functionality[2m > [22mshould handle concurrent cache operations correctly[32m 5[2mms[22m[39m
|
|
565
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/tools/reconciliation/__tests__/executor.integration.test.ts[2m > [22mReconciliation Executor - Bulk Create Integration[2m > [22mpropagates API errors for invalid account IDs[32m 277[2mms[22m[39m
|
|
566
|
-
[90mstderr[2m | src/server/__tests__/server-startup.integration.test.ts[2m > [22m[2mServer Startup and Transport Integration[2m > [22m[2mFull Startup Workflow[2m > [22m[2mshould complete full startup sequence successfully
|
|
567
|
-
[22m[39m✅ Server startup workflow completed successfully
|
|
568
|
-
|
|
569
|
-
[90mstderr[2m | src/tools/reconciliation/__tests__/executor.integration.test.ts[2m > [22m[2mReconciliation Executor - Bulk Create Integration[2m > [22m[2mskips work when a rate limit error is detected
|
|
570
|
-
[22m[39m⏭️ Skipping test due to YNAB API rate limit
|
|
571
|
-
|
|
572
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mMCP Server Functionality[2m > [22m[2mshould include enhanced cache metrics in real diagnostic collection
|
|
573
|
-
[22m[39mRate limit check for token_74700d80: 7/200 requests, remaining: 193, limited: false
|
|
574
|
-
[INFO] ynab:list_budgets | SUCCESS | 227ms | rate_limit_remaining:193
|
|
575
|
-
|
|
576
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mMCP Server Functionality[2m > [22m[2mshould include enhanced cache metrics in real diagnostic collection
|
|
577
|
-
[22m[39mRate limit check for token_74700d80: 7/200 requests, remaining: 193, limited: false
|
|
578
|
-
|
|
579
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mMCP Server Functionality[2m > [22m[2mshould include enhanced cache metrics in real diagnostic collection
|
|
580
|
-
[22m[39mRecorded request for token_74700d80: 8/200 requests
|
|
581
|
-
|
|
582
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/tools/reconciliation/__tests__/executor.integration.test.ts[2m > [22mReconciliation Executor - Bulk Create Integration[2m > [22mskips work when a rate limit error is detected[32m 184[2mms[22m[39m
|
|
583
|
-
[90mstderr[2m | src/server/__tests__/server-startup.integration.test.ts[2m > [22m[2mServer Startup and Transport Integration[2m > [22m[2mFull Startup Workflow[2m > [22m[2mshould fail fast on authentication errors
|
|
584
|
-
[22m[39mServer startup failed: Token validation failed: [object Object]
|
|
585
|
-
|
|
586
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/server-startup.integration.test.ts[2m > [22mServer Startup and Transport Integration[2m > [22mFull Startup Workflow[2m > [22mshould complete full startup sequence successfully[32m 266[2mms[22m[39m
|
|
587
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/server-startup.integration.test.ts[2m > [22mServer Startup and Transport Integration[2m > [22mFull Startup Workflow[2m > [22mshould fail fast on configuration errors[32m 3[2mms[22m[39m
|
|
588
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/server-startup.integration.test.ts[2m > [22mServer Startup and Transport Integration[2m > [22mFull Startup Workflow[2m > [22mshould fail fast on authentication errors[32m 97[2mms[22m[39m
|
|
589
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mMCP Server Functionality[2m > [22m[2mshould include enhanced cache metrics in real diagnostic collection
|
|
590
|
-
[22m[39mRate limit check for token_74700d80: 8/200 requests, remaining: 192, limited: false
|
|
591
|
-
[INFO] ynab:get_user | SUCCESS | 111ms | rate_limit_remaining:192
|
|
592
|
-
|
|
593
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mMCP Server Functionality[2m > [22m[2mshould include enhanced cache metrics in real diagnostic collection
|
|
594
|
-
[22m[39mRate limit check for token_74700d80: 8/200 requests, remaining: 192, limited: false
|
|
595
|
-
|
|
596
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mMCP Server Functionality[2m > [22m[2mshould include enhanced cache metrics in real diagnostic collection
|
|
597
|
-
[22m[39mRecorded request for token_74700d80: 9/200 requests
|
|
598
|
-
|
|
599
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mMCP Server Functionality[2m > [22m[2mshould include enhanced cache metrics in real diagnostic collection
|
|
600
|
-
[22m[39mRate limit check for token_74700d80: 9/200 requests, remaining: 191, limited: false
|
|
601
|
-
[INFO] ynab:diagnostic_info | SUCCESS | 1ms | rate_limit_remaining:191
|
|
602
|
-
|
|
603
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mMCP Server Functionality[2m > [22m[2mshould configure output formatter via set_output_format tool
|
|
604
|
-
[22m[39mRate limit check for token_74700d80: 9/200 requests, remaining: 191, limited: false
|
|
605
|
-
|
|
606
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mMCP Server Functionality[2m > [22m[2mshould configure output formatter via set_output_format tool
|
|
607
|
-
[22m[39mRecorded request for token_74700d80: 10/200 requests
|
|
608
|
-
|
|
609
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mMCP Server Functionality[2m > [22m[2mshould configure output formatter via set_output_format tool
|
|
610
|
-
[22m[39mRate limit check for token_74700d80: 10/200 requests, remaining: 190, limited: false
|
|
611
|
-
[INFO] ynab:set_output_format | SUCCESS | 2ms | rate_limit_remaining:190
|
|
612
|
-
|
|
613
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mMCP Server Functionality[2m > [22m[2mshould configure output formatter via set_output_format tool
|
|
614
|
-
[22m[39mRate limit check for token_74700d80: 10/200 requests, remaining: 190, limited: false
|
|
615
|
-
|
|
616
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mMCP Server Functionality[2m > [22m[2mshould configure output formatter via set_output_format tool
|
|
617
|
-
[22m[39mRecorded request for token_74700d80: 11/200 requests
|
|
618
|
-
|
|
619
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mMCP Server Functionality[2m > [22m[2mshould configure output formatter via set_output_format tool
|
|
620
|
-
[22m[39mRate limit check for token_74700d80: 11/200 requests, remaining: 189, limited: false
|
|
621
|
-
[INFO] ynab:set_output_format | SUCCESS | 1ms | rate_limit_remaining:189
|
|
622
|
-
|
|
623
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mMCP Server Functionality[2m > [22m[2mshould surface validation errors for invalid inputs
|
|
624
|
-
[22m[39mRate limit check for token_74700d80: 11/200 requests, remaining: 189, limited: false
|
|
625
|
-
[ERROR] ynab:get_budget | FAILED | 0ms | rate_limit_remaining:189 | error:"Validation failed: Validation error: Invalid input: expected string, received undefined at "budget_id""
|
|
626
|
-
|
|
627
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mModular Architecture Integration with Real API[2m > [22m[2mshould maintain real API functionality after modular refactoring
|
|
628
|
-
[22m[39mRate limit check for token_74700d80: 11/200 requests, remaining: 189, limited: false
|
|
629
|
-
|
|
630
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mModular Architecture Integration with Real API[2m > [22m[2mshould maintain real API functionality after modular refactoring
|
|
631
|
-
[22m[39mRecorded request for token_74700d80: 12/200 requests
|
|
632
|
-
|
|
633
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22mYNABMCPServer[2m > [22mMCP Server Functionality[2m > [22mshould include enhanced cache metrics in real diagnostic collection[33m 348[2mms[22m[39m
|
|
634
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22mYNABMCPServer[2m > [22mMCP Server Functionality[2m > [22mshould configure output formatter via set_output_format tool[32m 10[2mms[22m[39m
|
|
635
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22mYNABMCPServer[2m > [22mMCP Server Functionality[2m > [22mshould surface validation errors for invalid inputs[32m 9[2mms[22m[39m
|
|
636
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mModular Architecture Integration with Real API[2m > [22m[2mshould maintain real API functionality after modular refactoring
|
|
637
|
-
[22m[39mRate limit check for token_74700d80: 12/200 requests, remaining: 188, limited: false
|
|
638
|
-
[INFO] ynab:get_user | SUCCESS | 108ms | rate_limit_remaining:188
|
|
639
|
-
|
|
640
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mModular Architecture Integration with Real API[2m > [22m[2mshould maintain real API functionality after modular refactoring
|
|
641
|
-
[22m[39mRate limit check for token_74700d80: 12/200 requests, remaining: 188, limited: false
|
|
642
|
-
|
|
643
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mModular Architecture Integration with Real API[2m > [22m[2mshould maintain real API functionality after modular refactoring
|
|
644
|
-
[22m[39mRecorded request for token_74700d80: 13/200 requests
|
|
645
|
-
|
|
646
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mModular Architecture Integration with Real API[2m > [22m[2mshould maintain real API functionality after modular refactoring
|
|
647
|
-
[22m[39mRate limit check for token_74700d80: 13/200 requests, remaining: 187, limited: false
|
|
648
|
-
[INFO] ynab:list_budgets | SUCCESS | 1ms | rate_limit_remaining:187
|
|
649
|
-
|
|
650
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mModular Architecture Integration with Real API[2m > [22m[2mshould maintain real API functionality after modular refactoring
|
|
651
|
-
[22m[39mRate limit check for token_74700d80: 13/200 requests, remaining: 187, limited: false
|
|
652
|
-
|
|
653
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mModular Architecture Integration with Real API[2m > [22m[2mshould maintain real API functionality after modular refactoring
|
|
654
|
-
[22m[39mRecorded request for token_74700d80: 14/200 requests
|
|
655
|
-
|
|
656
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mModular Architecture Integration with Real API[2m > [22m[2mshould maintain real API functionality after modular refactoring
|
|
657
|
-
[22m[39mRate limit check for token_74700d80: 14/200 requests, remaining: 186, limited: false
|
|
658
|
-
[INFO] ynab:diagnostic_info | SUCCESS | 1ms | rate_limit_remaining:186
|
|
659
|
-
|
|
660
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mModular Architecture Integration with Real API[2m > [22m[2mshould handle modular service errors gracefully in integration
|
|
661
|
-
[22m[39mRate limit check for token_74700d80: 14/200 requests, remaining: 186, limited: false
|
|
662
|
-
[ERROR] ynab:get_budget | FAILED | 0ms | rate_limit_remaining:186 | error:"Validation failed: Validation error: Invalid input: expected string, received undefined at "budget_id""
|
|
663
|
-
|
|
664
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mBudget Resolution Integration Tests[2m > [22m[2mshould complete end-to-end workflow with real YNAB API after setting default budget
|
|
665
|
-
[22m[39mRate limit check for token_74700d80: 14/200 requests, remaining: 186, limited: false
|
|
666
|
-
|
|
667
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mBudget Resolution Integration Tests[2m > [22m[2mshould complete end-to-end workflow with real YNAB API after setting default budget
|
|
668
|
-
[22m[39mRecorded request for token_74700d80: 15/200 requests
|
|
669
|
-
|
|
670
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mBudget Resolution Integration Tests[2m > [22m[2mshould complete end-to-end workflow with real YNAB API after setting default budget
|
|
671
|
-
[22m[39mRate limit check for token_74700d80: 15/200 requests, remaining: 185, limited: false
|
|
672
|
-
[INFO] ynab:list_budgets | SUCCESS | 1ms | rate_limit_remaining:185
|
|
673
|
-
|
|
674
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mBudget Resolution Integration Tests[2m > [22m[2mshould complete end-to-end workflow with real YNAB API after setting default budget
|
|
675
|
-
[22m[39mRate limit check for token_74700d80: 15/200 requests, remaining: 185, limited: false
|
|
676
|
-
|
|
677
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mBudget Resolution Integration Tests[2m > [22m[2mshould complete end-to-end workflow with real YNAB API after setting default budget
|
|
678
|
-
[22m[39mRecorded request for token_74700d80: 16/200 requests
|
|
679
|
-
|
|
680
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22mYNABMCPServer[2m > [22mModular Architecture Integration with Real API[2m > [22mshould maintain real API functionality after modular refactoring[32m 119[2mms[22m[39m
|
|
681
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22mYNABMCPServer[2m > [22mModular Architecture Integration with Real API[2m > [22mshould handle modular service errors gracefully in integration[32m 8[2mms[22m[39m
|
|
682
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22mYNABMCPServer[2m > [22mBudget Resolution Integration Tests[2m > [22mshould handle real YNAB API calls with budget resolution errors[32m 7[2mms[22m[39m
|
|
683
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22mYNABMCPServer[2m > [22mBudget Resolution Integration Tests[2m > [22mshould handle real YNAB API calls with invalid budget ID[32m 7[2mms[22m[39m
|
|
684
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mBudget Resolution Integration Tests[2m > [22m[2mshould complete end-to-end workflow with real YNAB API after setting default budget
|
|
685
|
-
[22m[39mRate limit check for token_74700d80: 16/200 requests, remaining: 184, limited: false
|
|
686
|
-
[INFO] ynab:set_default_budget | SUCCESS | 339ms | rate_limit_remaining:184
|
|
687
|
-
|
|
688
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mBudget Resolution Integration Tests[2m > [22m[2mshould complete end-to-end workflow with real YNAB API after setting default budget
|
|
689
|
-
[22m[39mRate limit check for token_74700d80: 16/200 requests, remaining: 184, limited: false
|
|
690
|
-
|
|
691
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mBudget Resolution Integration Tests[2m > [22m[2mshould complete end-to-end workflow with real YNAB API after setting default budget
|
|
692
|
-
[22m[39mRecorded request for token_74700d80: 17/200 requests
|
|
693
|
-
|
|
694
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mBudget Resolution Integration Tests[2m > [22m[2mshould complete end-to-end workflow with real YNAB API after setting default budget
|
|
695
|
-
[22m[39mRate limit check for token_74700d80: 17/200 requests, remaining: 183, limited: false
|
|
696
|
-
[INFO] ynab:list_accounts | SUCCESS | 7ms | rate_limit_remaining:183
|
|
697
|
-
|
|
698
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mBudget Resolution Integration Tests[2m > [22m[2mshould handle real API errors properly with budget resolution
|
|
699
|
-
[22m[39mRate limit check for token_74700d80: 17/200 requests, remaining: 183, limited: false
|
|
700
|
-
|
|
701
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mBudget Resolution Integration Tests[2m > [22m[2mshould handle real API errors properly with budget resolution
|
|
702
|
-
[22m[39mRecorded request for token_74700d80: 18/200 requests
|
|
703
|
-
|
|
704
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22mYNABMCPServer[2m > [22mBudget Resolution Integration Tests[2m > [22mshould complete end-to-end workflow with real YNAB API after setting default budget[33m 357[2mms[22m[39m
|
|
705
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mBudget Resolution Integration Tests[2m > [22m[2mshould handle real API errors properly with budget resolution
|
|
706
|
-
[22m[39mRate limit check for token_74700d80: 18/200 requests, remaining: 182, limited: false
|
|
707
|
-
[INFO] ynab:list_accounts | SUCCESS | 98ms | rate_limit_remaining:182
|
|
708
|
-
|
|
709
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mBudget Resolution Integration Tests[2m > [22m[2mshould handle real API errors properly with budget resolution
|
|
710
|
-
[22m[39m⏭️ Skipping test due to YNAB API rate limit
|
|
711
|
-
|
|
712
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mBudget Resolution Integration Tests[2m > [22m[2mshould maintain performance with real API calls and budget resolution
|
|
713
|
-
[22m[39mRate limit check for token_74700d80: 18/200 requests, remaining: 182, limited: false
|
|
714
|
-
|
|
715
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mBudget Resolution Integration Tests[2m > [22m[2mshould maintain performance with real API calls and budget resolution
|
|
716
|
-
[22m[39mRecorded request for token_74700d80: 19/200 requests
|
|
717
|
-
|
|
718
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mBudget Resolution Integration Tests[2m > [22m[2mshould maintain performance with real API calls and budget resolution
|
|
719
|
-
[22m[39mRate limit check for token_74700d80: 19/200 requests, remaining: 181, limited: false
|
|
720
|
-
[INFO] ynab:list_budgets | SUCCESS | 0ms | rate_limit_remaining:181
|
|
721
|
-
|
|
722
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mBudget Resolution Integration Tests[2m > [22m[2mshould maintain performance with real API calls and budget resolution
|
|
723
|
-
[22m[39mRate limit check for token_74700d80: 19/200 requests, remaining: 181, limited: false
|
|
724
|
-
|
|
725
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mBudget Resolution Integration Tests[2m > [22m[2mshould maintain performance with real API calls and budget resolution
|
|
726
|
-
[22m[39mRecorded request for token_74700d80: 20/200 requests
|
|
727
|
-
|
|
728
|
-
[2m[90m↓[39m[22m [30m[45m integration:core [49m[39m src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22mYNABMCPServer[2m > [22mBudget Resolution Integration Tests[2m > [22mshould handle real API errors properly with budget resolution[32m 106[2mms[22m[39m
|
|
729
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mBudget Resolution Integration Tests[2m > [22m[2mshould maintain performance with real API calls and budget resolution
|
|
730
|
-
[22m[39mRate limit check for token_74700d80: 20/200 requests, remaining: 180, limited: false
|
|
731
|
-
[INFO] ynab:set_default_budget | SUCCESS | 334ms | rate_limit_remaining:180
|
|
732
|
-
|
|
733
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mBudget Resolution Integration Tests[2m > [22m[2mshould maintain performance with real API calls and budget resolution
|
|
734
|
-
[22m[39mRate limit check for token_74700d80: 20/200 requests, remaining: 180, limited: false
|
|
735
|
-
Rate limit check for token_74700d80: 20/200 requests, remaining: 180, limited: false
|
|
736
|
-
Rate limit check for token_74700d80: 20/200 requests, remaining: 180, limited: false
|
|
737
|
-
Recorded request for token_74700d80: 21/200 requests
|
|
738
|
-
Recorded request for token_74700d80: 22/200 requests
|
|
739
|
-
Recorded request for token_74700d80: 23/200 requests
|
|
740
|
-
|
|
741
|
-
[90mstderr[2m | src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22m[2mYNABMCPServer[2m > [22m[2mBudget Resolution Integration Tests[2m > [22m[2mshould maintain performance with real API calls and budget resolution
|
|
742
|
-
[22m[39mRate limit check for token_74700d80: 23/200 requests, remaining: 177, limited: false
|
|
743
|
-
[INFO] ynab:list_accounts | SUCCESS | 16ms | rate_limit_remaining:177
|
|
744
|
-
Rate limit check for token_74700d80: 23/200 requests, remaining: 177, limited: false
|
|
745
|
-
[INFO] ynab:list_categories | SUCCESS | 16ms | rate_limit_remaining:177
|
|
746
|
-
Rate limit check for token_74700d80: 23/200 requests, remaining: 177, limited: false
|
|
747
|
-
[INFO] ynab:list_payees | SUCCESS | 16ms | rate_limit_remaining:177
|
|
748
|
-
|
|
749
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22mYNABMCPServer[2m > [22mBudget Resolution Integration Tests[2m > [22mshould maintain performance with real API calls and budget resolution[33m 359[2mms[22m[39m
|
|
750
|
-
[32m✓[39m [30m[45m integration:core [49m[39m src/server/__tests__/YNABMCPServer.integration.test.ts[2m > [22mYNABMCPServer[2m > [22mBudget Resolution Integration Tests[2m > [22mshould handle security middleware with budget resolution errors[32m 7[2mms[22m[39m
|
|
751
|
-
|
|
752
|
-
[2m Test Files [22m [1m[32m12 passed[39m[22m[2m | [22m[33m11 skipped[39m[90m (23)[39m
|
|
753
|
-
[2m Tests [22m [1m[32m134 passed[39m[22m[2m | [22m[33m50 skipped[39m[90m (188)[39m
|
|
754
|
-
[2m Start at [22m 20:51:14
|
|
755
|
-
[2m Duration [22m 9.56s[2m (transform 3.67s, setup 0ms, collect 50.31s, tests 9.41s, environment 11ms, prepare 6.66s)[22m
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
📊 Test results written to test-results/
|
|
759
|
-
- summary.json (overview)
|
|
760
|
-
- *-tests.json (1 project file(s))
|
|
761
|
-
- passed-tests-summary.json
|
|
762
|
-
- index.html (interactive report)
|
|
763
|
-
|
|
764
|
-
💡 test-results.json contains a pointer to the detailed results
|
|
765
|
-
[1m[7m[35m HTML [39m[27m[22m [35mReport is generated[39m
|
|
766
|
-
[2m You can run [22m[1mnpx vite preview --outDir test-results[22m[2m to see the test results.[22m
|