diff --git a/apps/api/src/services/bulk-ops.test.ts b/apps/api/src/services/bulk-ops.test.ts index e76f32c..f574739 100644 --- a/apps/api/src/services/bulk-ops.test.ts +++ b/apps/api/src/services/bulk-ops.test.ts @@ -152,4 +152,32 @@ describe('bulk agent operations', () => { }) expect(bad.statusCode).toBe(404) }) + + it('delete-bulk removes agents in one request and skips unknown ids', async () => { + const app = await appPromise + await app.ready() + + const a1 = await createInvitedAgent(app, 'bulk-del-01') + const a2 = await createInvitedAgent(app, 'bulk-del-02') + const a3 = await createInvitedAgent(app, 'bulk-del-03') + + const bulk = await app.inject({ + method: 'POST', + url: '/api/v1/agents/delete-bulk', + payload: { agent_ids: [a1, a2, 'no-such-agent'] }, + }) + expect(bulk.statusCode).toBe(200) + const body = bulk.json() as { items: string[]; deleted: number } + expect(body.deleted).toBe(2) + expect(body.items.sort()).toEqual([a1, a2].sort()) + + for (const id of [a1, a2]) { + const res = await app.inject({ method: 'GET', url: `/api/v1/agents/${id}` }) + expect(res.statusCode).toBe(404) + } + + // a3 не упомянут в запросе — остаётся на месте + const kept = await app.inject({ method: 'GET', url: `/api/v1/agents/${a3}` }) + expect(kept.statusCode).toBe(200) + }) })