From 1846e86b9e0bee62b2affab7d65ddd056c12a155 Mon Sep 17 00:00:00 2001 From: SJCoetz Date: Fri, 10 Jul 2026 00:49:36 +0200 Subject: [PATCH] test(collection-map): cover assigned_at clear on unassign --- .../items/[id]/assign/route.test.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/app/api/v1/collection-map/items/[id]/assign/route.test.ts b/src/app/api/v1/collection-map/items/[id]/assign/route.test.ts index f3ada73..6a043cc 100644 --- a/src/app/api/v1/collection-map/items/[id]/assign/route.test.ts +++ b/src/app/api/v1/collection-map/items/[id]/assign/route.test.ts @@ -96,4 +96,23 @@ describe("PATCH /api/v1/collection-map/items/[id]/assign", () => { // The unmark path must not silently overwrite the existing note. expect(payload.notes).toBeUndefined(); }); + + it("clears assigned_at when returning an item to the pool (no driverId)", async () => { + getOneMock.mockResolvedValueOnce({ + id: "item-1", + assigned_at: "2026-07-09T00:00:00.000Z", + }); + updateMock.mockResolvedValueOnce({ id: "item-1" }); + + const res = await PATCH( + makeReq({ date: "" }), + { params: Promise.resolve({ id: "item-1" }) }, + ); + + expect(res.status).toBe(200); + const payload = updateMock.mock.calls[0][1] as Record; + expect(payload.assigned_at).toBe(""); + expect(payload.item_status).toBe("collection_pool"); + expect(payload.drv_status).toBe("unassigned"); + }); }); \ No newline at end of file