From 8762d51220632eacc18c93f27dbf1003d13e12f2 Mon Sep 17 00:00:00 2001 From: Juan Ibiapina Date: Tue, 2 Jun 2026 17:15:04 +0200 Subject: [PATCH 1/3] fix: remove console.log on invalid status codes --- src/utils/http.spec.ts | 34 ++++++++++++++++++++++++++++++++++ src/utils/http.ts | 1 - 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 src/utils/http.spec.ts diff --git a/src/utils/http.spec.ts b/src/utils/http.spec.ts new file mode 100644 index 00000000..f55690fa --- /dev/null +++ b/src/utils/http.spec.ts @@ -0,0 +1,34 @@ +import { describe, it, expect, vi, afterEach } from 'vitest' +import { createValidateStatusCode, HttpError, Response } from '.' + +const makeResponse = (statusCode: number, body = '{"sys":{"type":"Error"}}') => + ({ statusCode, body } as Response) + +describe('createValidateStatusCode', () => { + afterEach(() => { + vi.restoreAllMocks() + }) + + it('returns the response when status code is allowed', () => { + const validate = createValidateStatusCode([200, 201]) + const response = makeResponse(201) + expect(validate(response)).toBe(response) + }) + + it('throws HttpError when status code is not allowed', () => { + const validate = createValidateStatusCode([201]) + const response = makeResponse(404, '{"sys":{"type":"Error","id":"NotFound"}}') + expect(() => validate(response)).toThrow(HttpError) + }) + + it('does not write to stdout when throwing', () => { + const consoleSpy = vi.spyOn(console, 'log') + const validate = createValidateStatusCode([201]) + try { + validate(makeResponse(404)) + } catch { + // expected + } + expect(consoleSpy).not.toHaveBeenCalled() + }) +}) diff --git a/src/utils/http.ts b/src/utils/http.ts index 84450844..79731487 100644 --- a/src/utils/http.ts +++ b/src/utils/http.ts @@ -11,7 +11,6 @@ export const createHttpClient = (configOverride: ExtendOptions = {}) => { export const createValidateStatusCode = (allowedStatusCodes: number[]) => (response: Response) => { if (!allowedStatusCodes.includes(response.statusCode)) { - console.log(response.body) throw new HTTPError(response) } return response From d150c2213a2a52f00b20159f6096e113f4c3ac47 Mon Sep 17 00:00:00 2001 From: Juan Ibiapina Date: Tue, 2 Jun 2026 17:23:23 +0200 Subject: [PATCH 2/3] fix: prettier cast style in http.spec.ts --- src/utils/http.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/http.spec.ts b/src/utils/http.spec.ts index f55690fa..7bcea42f 100644 --- a/src/utils/http.spec.ts +++ b/src/utils/http.spec.ts @@ -2,7 +2,7 @@ import { describe, it, expect, vi, afterEach } from 'vitest' import { createValidateStatusCode, HttpError, Response } from '.' const makeResponse = (statusCode: number, body = '{"sys":{"type":"Error"}}') => - ({ statusCode, body } as Response) + ({ statusCode, body }) as Response describe('createValidateStatusCode', () => { afterEach(() => { From 7b711e53519c61f8a4902f5444c7bc8922e679c6 Mon Sep 17 00:00:00 2001 From: Juan Ibiapina Date: Wed, 3 Jun 2026 08:27:33 +0200 Subject: [PATCH 3/3] fix: replace console.log with debug logger in createValidateStatusCode Use the package's existing debug logger (gated by DEBUG=@contentful/node-apps-toolkit*) instead of console.log, so the output is silent by default in production. --- src/utils/http.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/utils/http.ts b/src/utils/http.ts index 79731487..6237e37f 100644 --- a/src/utils/http.ts +++ b/src/utils/http.ts @@ -1,4 +1,7 @@ import got, { ExtendOptions, Got, HTTPError, Response as GotResponse } from 'got' +import { createLogger } from './logger' + +const log = createLogger({ namespace: 'utils/http' }) const config = { prefixUrl: process.env.BASE_URL || 'https://api.contentful.com', @@ -11,6 +14,7 @@ export const createHttpClient = (configOverride: ExtendOptions = {}) => { export const createValidateStatusCode = (allowedStatusCodes: number[]) => (response: Response) => { if (!allowedStatusCodes.includes(response.statusCode)) { + log(`unexpected status code %d: %s`, response.statusCode, response.body) throw new HTTPError(response) } return response