diff --git a/src/routes/api/post/[id]/+server.ts b/src/routes/api/post/[id]/+server.ts index a1efb79..6e7f6ec 100644 --- a/src/routes/api/post/[id]/+server.ts +++ b/src/routes/api/post/[id]/+server.ts @@ -7,21 +7,21 @@ export const DELETE = async ({ locals: { supabase, safeGetSession }, params }) = throw error(401, 'Unauthorized'); } - const { data: posts } = await supabase + const { error: deleteError, data } = await supabase .from('post') - .select() + .delete() .eq('id', params.id) - .eq('creator', session.user.email); - if (!posts?.length) { - throw error(404, 'Not found or unauthorized'); - } - - const { error: deleteError } = await supabase.from('post').delete().eq('id', params.id); + .eq('creator', session.user.email) + .select(); if (deleteError) { throw error(500, 'Internal Server Error'); } + if (!data?.length) { + throw error(404, 'Not found or unauthorized'); + } + return text('Post deleted'); }; diff --git a/src/routes/api/post/[id]/server.test.ts b/src/routes/api/post/[id]/server.test.ts index 026ae1b..699ada4 100644 --- a/src/routes/api/post/[id]/server.test.ts +++ b/src/routes/api/post/[id]/server.test.ts @@ -74,10 +74,11 @@ describe('PATCH /api/post/[id]', () => { describe('DELETE /api/post/[id]', () => { it('should throw 404 when deleting a non-existent post', async () => { // Create a mock chain for supabase - const mockEq2 = vi.fn().mockResolvedValue({ data: [] }); + const mockSelect = vi.fn().mockResolvedValue({ data: [], error: null }); + const mockEq2 = vi.fn().mockReturnValue({ select: mockSelect }); const mockEq1 = vi.fn().mockReturnValue({ eq: mockEq2 }); - const mockSelect = vi.fn().mockReturnValue({ eq: mockEq1 }); - const mockFrom = vi.fn().mockReturnValue({ select: mockSelect }); + const mockDelete = vi.fn().mockReturnValue({ eq: mockEq1 }); + const mockFrom = vi.fn().mockReturnValue({ delete: mockDelete }); const mockSupabase = { from: mockFrom