Set 200 code for post requests (#21214)
as title, nestJS use to set 201 for post requests but some services (like google) requests 200 response code See https://discord.com/channels/1130383047699738754/1511054250971758642/1511785364027609099 for context
This commit is contained in:
+60
@@ -0,0 +1,60 @@
|
||||
import { HttpStatus } from '@nestjs/common';
|
||||
import { HTTP_CODE_METADATA } from '@nestjs/common/constants';
|
||||
|
||||
import { type Request } from 'express';
|
||||
import { HTTPMethod } from 'twenty-shared/types';
|
||||
|
||||
import { RouteTriggerService } from 'src/engine/core-modules/logic-function/logic-function-trigger/triggers/route/route-trigger.service';
|
||||
import { RouteTriggerController } from 'src/engine/metadata-modules/route-trigger/route-trigger.controller';
|
||||
|
||||
describe('RouteTriggerController', () => {
|
||||
let controller: RouteTriggerController;
|
||||
const handle = jest.fn();
|
||||
|
||||
beforeEach(() => {
|
||||
const routeTriggerService = {
|
||||
handle,
|
||||
} as unknown as RouteTriggerService;
|
||||
|
||||
controller = new RouteTriggerController(routeTriggerService);
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
jest.clearAllMocks();
|
||||
});
|
||||
|
||||
it('should be defined', () => {
|
||||
expect(controller).toBeDefined();
|
||||
});
|
||||
|
||||
describe('response status code', () => {
|
||||
it.each([
|
||||
['get', RouteTriggerController.prototype.get],
|
||||
['post', RouteTriggerController.prototype.post],
|
||||
['put', RouteTriggerController.prototype.put],
|
||||
['patch', RouteTriggerController.prototype.patch],
|
||||
['delete', RouteTriggerController.prototype.delete],
|
||||
])('should respond with 200 for %s', (_method, handler) => {
|
||||
const httpCode = Reflect.getMetadata(HTTP_CODE_METADATA, handler);
|
||||
|
||||
expect(httpCode).toBe(HttpStatus.OK);
|
||||
});
|
||||
});
|
||||
|
||||
describe('post', () => {
|
||||
it('should delegate to the service with the POST http method', async () => {
|
||||
const request = { path: '/s/webhooks/google/leads' } as Request;
|
||||
const expectedResult = {};
|
||||
|
||||
handle.mockResolvedValue(expectedResult);
|
||||
|
||||
const result = await controller.post(request);
|
||||
|
||||
expect(handle).toHaveBeenCalledWith({
|
||||
request,
|
||||
httpMethod: HTTPMethod.POST,
|
||||
});
|
||||
expect(result).toBe(expectedResult);
|
||||
});
|
||||
});
|
||||
});
|
||||
+7
@@ -2,6 +2,8 @@ import {
|
||||
Controller,
|
||||
Delete,
|
||||
Get,
|
||||
HttpCode,
|
||||
HttpStatus,
|
||||
Patch,
|
||||
Post,
|
||||
Put,
|
||||
@@ -25,6 +27,7 @@ export class RouteTriggerController {
|
||||
constructor(private readonly routeTriggerService: RouteTriggerService) {}
|
||||
|
||||
@Get('*path')
|
||||
@HttpCode(HttpStatus.OK)
|
||||
async get(@Req() request: Request) {
|
||||
return await this.routeTriggerService.handle({
|
||||
request,
|
||||
@@ -33,6 +36,7 @@ export class RouteTriggerController {
|
||||
}
|
||||
|
||||
@Post('*path')
|
||||
@HttpCode(HttpStatus.OK)
|
||||
async post(@Req() request: Request) {
|
||||
return await this.routeTriggerService.handle({
|
||||
request,
|
||||
@@ -41,6 +45,7 @@ export class RouteTriggerController {
|
||||
}
|
||||
|
||||
@Put('*path')
|
||||
@HttpCode(HttpStatus.OK)
|
||||
async put(@Req() request: Request) {
|
||||
return await this.routeTriggerService.handle({
|
||||
request,
|
||||
@@ -49,6 +54,7 @@ export class RouteTriggerController {
|
||||
}
|
||||
|
||||
@Patch('*path')
|
||||
@HttpCode(HttpStatus.OK)
|
||||
async patch(@Req() request: Request) {
|
||||
return await this.routeTriggerService.handle({
|
||||
request,
|
||||
@@ -57,6 +63,7 @@ export class RouteTriggerController {
|
||||
}
|
||||
|
||||
@Delete('*path')
|
||||
@HttpCode(HttpStatus.OK)
|
||||
async delete(@Req() request: Request) {
|
||||
return await this.routeTriggerService.handle({
|
||||
request,
|
||||
|
||||
Reference in New Issue
Block a user