Feat(medusa): request order edit (#2239)

**What**
- Implement `admin/order-edits/:id/request`

Fixes CORE-499
This commit is contained in:
Philip Korsholm
2022-09-22 10:17:00 +00:00
committed by GitHub
parent 14e808c724
commit 6da29c72c4
12 changed files with 428 additions and 14 deletions
@@ -1696,6 +1696,19 @@ export const adminHandlers = [
)
}),
rest.post("/admin/order-edits/:id/request", (req, res, ctx) => {
return res(
ctx.status(200),
ctx.json({
order_edit: {
...fixtures.get("order_edit"),
requested_at: new Date(),
status: "requested"
},
})
)
}),
rest.delete("/admin/order-edits/:id", (req, res, ctx) => {
const { id } = req.params
return res(
@@ -89,3 +89,20 @@ export const useAdminUpdateOrderEdit = (
)
)
}
export const useAdminRequestOrderEditConfirmation = (
id: string,
options?: UseMutationOptions<Response<AdminOrderEditsRes>, Error>
) => {
const { client } = useMedusa()
const queryClient = useQueryClient()
return useMutation(
() => client.admin.orderEdits.requestConfirmation(id),
buildOptions(
queryClient,
[adminOrderEditsKeys.lists(), adminOrderEditsKeys.detail(id)],
options
)
)
}
@@ -1,10 +1,10 @@
import { renderHook } from "@testing-library/react-hooks"
import {
useAdminCreateOrderEdit,
useAdminDeleteOrderEdit,
useAdminDeleteOrderEditItemChange,
useAdminUpdateOrderEdit,
useAdminRequestOrderEditConfirmation,
} from "../../../../src/"
import { fixtures } from "../../../../mocks/data"
import { createWrapper } from "../../../utils"
@@ -108,3 +108,24 @@ describe("useAdminCreateOrderEdit hook", () => {
)
})
})
describe("useAdminRequestOrderEditConfirmation hook", () => {
test("Requests an order edit", async () => {
const { result, waitFor } = renderHook(() => useAdminRequestOrderEditConfirmation(fixtures.get("order_edit").id), {
wrapper: createWrapper(),
})
result.current.mutate()
await waitFor(() => result.current.isSuccess)
expect(result.current.data.response.status).toEqual(200)
expect(result.current.data?.order_edit).toEqual(
expect.objectContaining({
...fixtures.get("order_edit"),
requested_at: expect.any(String),
status: 'requested'
})
)
})
})