Task #69: Delete past orders from My Orders
- Add DELETE /api/orders/:id endpoint: owner can delete completed/cancelled orders; admin can delete any. 401/403/404/204 responses. Emits order_deleted to owner and assignee for live invalidation. - Update OpenAPI spec with deleteServiceOrder operation; regenerate api-client-react + api-zod. - Frontend: per-order trash button on completed/cancelled cards with confirm dialog; bulk "Clear finished (N)" button at top of list with confirm dialog and toast summary (handles partial failures). - Add ar/en locale keys under myOrders for delete + clear flows (singular/plural variants). - Backend tests cover all paths: pending owner=403, stranger=403, owner-cancelled=204, owner-completed=204, admin-pending=204, 404, 401. All 25 service-order tests pass; the 1 failing test (admin-app-opens- pagination) is unrelated/pre-existing. Follow-ups proposed: #70 undo for deleted orders, #71 audit self-notification on receiver-cancel-own-order.
This commit is contained in:
@@ -335,6 +335,9 @@ test("DELETE /orders/:id — owner can delete completed/cancelled, admin can del
|
||||
res = await call(co, "GET", "/orders/my");
|
||||
const list1 = await res.json();
|
||||
assert.ok(!list1.find((o) => o.id === o2.id));
|
||||
// 3b) Deleting the same order again returns 404 (idempotent semantics)
|
||||
res = await call(co, "DELETE", `/orders/${o2.id}`);
|
||||
assert.equal(res.status, 404);
|
||||
|
||||
// 4) Owner CAN delete a completed order
|
||||
const o3 = await placeOrder();
|
||||
|
||||
Reference in New Issue
Block a user