Files
medusa-store/packages/medusa-react/test/hooks/admin/claims/mutations.test.ts
Zakaria El Asri 2e384842d5 feat: medusa-react admin hooks (#978)
* add: medusa admin hooks + tests

* fix: remove unneeded props

* fix: deps

* fix: deps

* fix: deps

* fix: failing tests

* fix: failing tests

* fix: query key

* add: yarn workspaces

* fix: linting medusa-react

* fix: add prepare script

* fix: buildOptions

* fix: useAdminShippingOptions query

* fix: use qs instead for query params (#1019)

* fix: formatting

* debug: ci pipeline

* debug: log node_modules structure

* debug: use lerna bootstrap

* debug: update node version

* debug: print pkgs in workspace

* debug: print pkgs in workspace

* debug: print pkgs in workspace

* debug: print pkgs in workspace

* debug: add explicit build step

* fix: jsdoc

* debug: run build step

* debug: fix build errors

* debug: add build step to integration tests

* fix: failing test

* cleanup

Co-authored-by: Sebastian Rindom <seb@medusajs.com>
Co-authored-by: Sebastian Rindom <skrindom@gmail.com>
2022-02-02 17:10:56 +01:00

163 lines
4.1 KiB
TypeScript

import {
useAdminCancelClaimFulfillment,
useAdminCreateClaim,
useAdminCancelClaim,
useAdminUpdateClaim,
useAdminFulfillClaim,
useAdminCreateClaimShipment,
} from "../../../../src/"
import { renderHook } from "@testing-library/react-hooks"
import { fixtures } from "../../../../mocks/data"
import { createWrapper } from "../../../utils"
describe("useAdminCreateClaim hook", () => {
test("creates a claim for an order", async () => {
const orderId = fixtures.get("order").id
const claim = {
type: "refund" as const,
claim_items: [
{
item_id: "test-variant",
quantity: 1,
},
],
}
const { result, waitFor } = renderHook(() => useAdminCreateClaim(orderId), {
wrapper: createWrapper(),
})
result.current.mutate(claim)
await waitFor(() => result.current.isSuccess)
expect(result.current.data.response.status).toEqual(200)
expect(result.current.data.order).toEqual(fixtures.get("order"))
})
})
describe("useAdminUpdateClaim hook", () => {
test("updates a claim for an order", async () => {
const orderId = fixtures.get("order").id
const claimId = "test-claim"
const claim = {
shipping_method: [
{
option_id: "test-so",
price: 1000,
},
],
}
const { result, waitFor } = renderHook(() => useAdminUpdateClaim(orderId), {
wrapper: createWrapper(),
})
result.current.mutate({
claim_id: claimId,
...claim,
})
await waitFor(() => result.current.isSuccess)
expect(result.current.data.response.status).toEqual(200)
expect(result.current.data.order).toEqual(fixtures.get("order"))
})
})
describe("useAdminFulfillClaim hook", () => {
test("fulfills a claim", async () => {
const orderId = fixtures.get("order").id
const claimId = "test-claim"
const payload = {
no_notification: true,
}
const { result, waitFor } = renderHook(
() => useAdminFulfillClaim(orderId),
{
wrapper: createWrapper(),
}
)
result.current.mutate({
claim_id: claimId,
...payload,
})
await waitFor(() => result.current.isSuccess)
expect(result.current.data.response.status).toEqual(200)
expect(result.current.data.order).toEqual(fixtures.get("order"))
})
})
describe("useAdminCreateClaimShipment hook", () => {
test("creates a claim shipment", async () => {
const orderId = fixtures.get("order").id
const claimId = "test-claim"
const payload = {
fulfillment_id: "test-id",
tracking_numbers: [],
}
const { result, waitFor } = renderHook(
() => useAdminCreateClaimShipment(orderId),
{
wrapper: createWrapper(),
}
)
result.current.mutate({
claim_id: claimId,
...payload,
})
await waitFor(() => result.current.isSuccess)
expect(result.current.data.response.status).toEqual(200)
expect(result.current.data.order).toEqual(fixtures.get("order"))
})
})
describe("useAdminCancelClaim hook", () => {
test("cancels a claim for an order", async () => {
const orderId = fixtures.get("order").id
const claimId = "test-claim"
const { result, waitFor } = renderHook(() => useAdminCancelClaim(orderId), {
wrapper: createWrapper(),
})
result.current.mutate(claimId)
await waitFor(() => result.current.isSuccess)
expect(result.current.data.response.status).toEqual(200)
expect(result.current.data.order).toEqual(fixtures.get("order"))
})
})
describe("useAdminCancelClaimFulfillment hook", () => {
test("cancels a claim's fulfillment", async () => {
const orderId = fixtures.get("order").id
const claimId = "test-claim"
const fulfillmentId = "test-ful"
const { result, waitFor } = renderHook(
() => useAdminCancelClaimFulfillment(orderId),
{
wrapper: createWrapper(),
}
)
result.current.mutate({ claim_id: claimId, fulfillment_id: fulfillmentId })
await waitFor(() => result.current.isSuccess)
expect(result.current.data.response.status).toEqual(200)
expect(result.current.data.order).toEqual(fixtures.get("order"))
})
})