From 09ce3977c405b280784b26f6cf70e98c34939ccc Mon Sep 17 00:00:00 2001 From: ymc9 <104139426+ymc9@users.noreply.github.com> Date: Mon, 6 Jan 2025 18:00:55 +0800 Subject: [PATCH 1/3] fix(server): return an object without primary data for delete route fixes #1668 --- packages/server/src/api/rest/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/server/src/api/rest/index.ts b/packages/server/src/api/rest/index.ts index 1107fbc64..16de93637 100644 --- a/packages/server/src/api/rest/index.ts +++ b/packages/server/src/api/rest/index.ts @@ -1103,8 +1103,8 @@ class RequestHandler extends APIHandlerBase { where: this.makePrismaIdFilter(typeInfo.idFields, resourceId), }); return { - status: 204, - body: undefined, + status: 200, + body: { meta: {} }, }; } From 9b403e372c8351bd236fd67c6c4cc97b1eaf47c8 Mon Sep 17 00:00:00 2001 From: ymc9 <104139426+ymc9@users.noreply.github.com> Date: Mon, 6 Jan 2025 19:13:32 +0800 Subject: [PATCH 2/3] fix tests --- packages/server/tests/api/rest.test.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/server/tests/api/rest.test.ts b/packages/server/tests/api/rest.test.ts index 2a59e6067..b36755055 100644 --- a/packages/server/tests/api/rest.test.ts +++ b/packages/server/tests/api/rest.test.ts @@ -2340,8 +2340,8 @@ describe('REST server tests', () => { prisma, }); - expect(r.status).toBe(204); - expect(r.body).toBeUndefined(); + expect(r.status).toBe(200); + expect(r.body).toMatchObject({ meta: {} }); }); it('deletes an item with compound id', async () => { @@ -2355,8 +2355,8 @@ describe('REST server tests', () => { path: `/postLike/1${idDivider}user1`, prisma, }); - expect(r.status).toBe(204); - expect(r.body).toBeUndefined(); + expect(r.status).toBe(200); + expect(r.body).toMatchObject({ meta: {} }); }); it('returns 404 if the user does not exist', async () => { From 3094c6928a7026ade2138618be1f377c8d89c941 Mon Sep 17 00:00:00 2001 From: ymc9 <104139426+ymc9@users.noreply.github.com> Date: Mon, 6 Jan 2025 19:30:40 +0800 Subject: [PATCH 3/3] fix tests --- packages/server/tests/adapter/express.test.ts | 2 +- packages/server/tests/adapter/fastify.test.ts | 2 +- packages/server/tests/adapter/hono.test.ts | 2 +- packages/server/tests/adapter/next.test.ts | 2 +- packages/server/tests/adapter/sveltekit.test.ts | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/server/tests/adapter/express.test.ts b/packages/server/tests/adapter/express.test.ts index 0627990e7..85ccc8a21 100644 --- a/packages/server/tests/adapter/express.test.ts +++ b/packages/server/tests/adapter/express.test.ts @@ -190,7 +190,7 @@ describe('Express adapter tests - rest handler', () => { expect(r.body.data.attributes.email).toBe('user1@def.com'); r = await request(app).delete(makeUrl('/api/user/user1')); - expect(r.status).toBe(204); + expect(r.status).toBe(200); expect(await prisma.user.findMany()).toHaveLength(0); }); }); diff --git a/packages/server/tests/adapter/fastify.test.ts b/packages/server/tests/adapter/fastify.test.ts index f03066e4f..ed4da3c72 100644 --- a/packages/server/tests/adapter/fastify.test.ts +++ b/packages/server/tests/adapter/fastify.test.ts @@ -233,7 +233,7 @@ describe('Fastify adapter tests - rest handler', () => { expect(r.json().data.attributes.email).toBe('user1@def.com'); r = await app.inject({ method: 'DELETE', url: '/api/user/user1' }); - expect(r.statusCode).toBe(204); + expect(r.statusCode).toBe(200); expect(await prisma.user.findMany()).toHaveLength(0); }); }); diff --git a/packages/server/tests/adapter/hono.test.ts b/packages/server/tests/adapter/hono.test.ts index 3fc1bb9da..fc55e1647 100644 --- a/packages/server/tests/adapter/hono.test.ts +++ b/packages/server/tests/adapter/hono.test.ts @@ -167,7 +167,7 @@ describe('Hono adapter tests - rest handler', () => { expect((await unmarshal(r)).data.attributes.email).toBe('user1@def.com'); r = await handler(makeRequest('DELETE', makeUrl(makeUrl('/api/user/user1')))); - expect(r.status).toBe(204); + expect(r.status).toBe(200); expect(await prisma.user.findMany()).toHaveLength(0); }); }); diff --git a/packages/server/tests/adapter/next.test.ts b/packages/server/tests/adapter/next.test.ts index b8652de7c..733b30ade 100644 --- a/packages/server/tests/adapter/next.test.ts +++ b/packages/server/tests/adapter/next.test.ts @@ -307,7 +307,7 @@ model M { expect(resp.body.data.attributes.value).toBe(2); }); - await makeTestClient('/m/1', options).del('/').expect(204); + await makeTestClient('/m/1', options).del('/').expect(200); expect(await prisma.m.count()).toBe(0); }); }); diff --git a/packages/server/tests/adapter/sveltekit.test.ts b/packages/server/tests/adapter/sveltekit.test.ts index d9663a2b6..650f89f85 100644 --- a/packages/server/tests/adapter/sveltekit.test.ts +++ b/packages/server/tests/adapter/sveltekit.test.ts @@ -164,7 +164,7 @@ describe('SvelteKit adapter tests - rest handler', () => { expect((await unmarshal(r)).data.attributes.email).toBe('user1@def.com'); r = await handler(makeRequest('DELETE', makeUrl(makeUrl('/api/user/user1')))); - expect(r.status).toBe(204); + expect(r.status).toBe(200); expect(await prisma.user.findMany()).toHaveLength(0); }); });