diff --git a/packages/cli/src/webhooks/__tests__/test-webhooks.test.ts b/packages/cli/src/webhooks/__tests__/test-webhooks.test.ts index cd90e2f211..4dd9715e68 100644 --- a/packages/cli/src/webhooks/__tests__/test-webhooks.test.ts +++ b/packages/cli/src/webhooks/__tests__/test-webhooks.test.ts @@ -56,7 +56,7 @@ describe('TestWebhooks', () => { }); beforeEach(() => { - jest.clearAllMocks(); + jest.resetAllMocks(); }); describe('needsWebhook()', () => { @@ -192,4 +192,19 @@ describe('TestWebhooks', () => { expect(mockedAdditionalData.getBase).toHaveBeenCalledWith(userId); }); }); + + describe('getWebhookMethods()', () => { + test('should normalize trailing slash', async () => { + const METHOD = 'POST'; + const PATH_WITH_SLASH = 'register/'; + const PATH_WITHOUT_SLASH = 'register'; + registrations.getAllKeys.mockResolvedValue([`${METHOD}|${PATH_WITHOUT_SLASH}`]); + + const resultWithSlash = await testWebhooks.getWebhookMethods(PATH_WITH_SLASH); + const resultWithoutSlash = await testWebhooks.getWebhookMethods(PATH_WITHOUT_SLASH); + + expect(resultWithSlash).toEqual([METHOD]); + expect(resultWithoutSlash).toEqual([METHOD]); + }); + }); }); diff --git a/packages/cli/src/webhooks/test-webhooks.ts b/packages/cli/src/webhooks/test-webhooks.ts index f944021e47..4ff5f16d73 100644 --- a/packages/cli/src/webhooks/test-webhooks.ts +++ b/packages/cli/src/webhooks/test-webhooks.ts @@ -174,7 +174,8 @@ export class TestWebhooks implements IWebhookManager { if (timeout) clearTimeout(timeout); } - async getWebhookMethods(path: string) { + async getWebhookMethods(rawPath: string) { + const path = removeTrailingSlash(rawPath); const allKeys = await this.registrations.getAllKeys(); const webhookMethods = allKeys