From 385fddedeac9fceba01b414c25b7f9c15380f84a Mon Sep 17 00:00:00 2001 From: Chadwick Posey Date: Sun, 28 Dec 2025 00:58:57 -0500 Subject: [PATCH] Fix credit note single response parsing The transformCreditNoteResponse function was extracting 'credit_notes' (plural) from the API response, but the FreshBooks API returns 'credit_note' (singular) for single credit note operations (GET, POST, PUT). This caused a TypeError when accessing properties on undefined. Changes: - Fix CreditNote.ts to extract 'credit_note' instead of 'credit_notes' - Update test mocks to match actual API response format --- packages/api/__tests__/CreditNote.test.ts | 10 +++++----- packages/api/src/models/CreditNote.ts | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/api/__tests__/CreditNote.test.ts b/packages/api/__tests__/CreditNote.test.ts index 81fdbfd2..0734fc55 100644 --- a/packages/api/__tests__/CreditNote.test.ts +++ b/packages/api/__tests__/CreditNote.test.ts @@ -194,14 +194,14 @@ const buildMockRequest = (creditNoteProperties: any = {}): any => ({ describe('@freshbooks/api', () => { describe('CreditNote', () => { - test('GET /accounting/account//credit_notes/cerdit_notes/', async () => { + test('GET /accounting/account//credit_notes/credit_notes/', async () => { const client = new Client(CLIENT_ID, testOptions) const mockResponse = ` {"response": { "result": { - "credit_notes": ${buildMockResponse()} + "credit_note": ${buildMockResponse()} } } }` @@ -335,7 +335,7 @@ describe('@freshbooks/api', () => { {"response": { "result": { - "credit_notes": { + "credit_note": { "city": "", "clientid": "2", "code": "", @@ -424,7 +424,7 @@ describe('@freshbooks/api', () => { {"response": { "result": { - "credit_notes": { + "credit_note": { "city": "", "clientid": "2", "code": "", @@ -513,7 +513,7 @@ describe('@freshbooks/api', () => { {"response": { "result": { - "credit_notes": { + "credit_note": { "city": "", "clientid": "2", "code": "", diff --git a/packages/api/src/models/CreditNote.ts b/packages/api/src/models/CreditNote.ts index 4f8d2a27..11aabf55 100644 --- a/packages/api/src/models/CreditNote.ts +++ b/packages/api/src/models/CreditNote.ts @@ -130,9 +130,9 @@ export function transformCreditNoteResponse( return transformAccountingErrorResponse(response) } - const { credit_notes } = response.response.result + const { credit_note } = response.response.result - return transformCreditNoteParsedResponse(credit_notes) + return transformCreditNoteParsedResponse(credit_note) } export function transformCreditNoteListResponse(