Files
medusa-store/packages/medusa-react/test/hooks/admin/discounts/queries.test.ts
2023-03-03 10:09:16 +01:00

81 lines
2.2 KiB
TypeScript

import { renderHook } from "@testing-library/react-hooks/dom"
import { fixtures } from "../../../../mocks/data"
import {
useAdminDiscount,
useAdminDiscounts,
useAdminGetDiscountByCode,
useAdminGetDiscountCondition,
} from "../../../../src"
import { createWrapper } from "../../../utils"
describe("useAdminDiscounts hook", () => {
test("returns a list of discounts", async () => {
const discounts = fixtures.list("discount")
const { result, waitFor } = renderHook(() => useAdminDiscounts(), {
wrapper: createWrapper(),
})
await waitFor(() => result.current.isSuccess)
expect(result.current.response.status).toEqual(200)
expect(result.current.discounts).toEqual(discounts)
})
})
describe("useAdminGetDiscountByCode hook", () => {
test("retrieves a discount by discount code", async () => {
const discount = fixtures.get("discount")
const { result, waitFor } = renderHook(
() => useAdminGetDiscountByCode("10DISC"),
{
wrapper: createWrapper(),
}
)
await waitFor(() => result.current.isSuccess)
expect(result.current.response.status).toEqual(200)
expect(result.current.discount).toEqual(discount)
})
})
describe("useAdminDiscount hook", () => {
test("returns a discount", async () => {
const discount = fixtures.get("discount")
const { result, waitFor } = renderHook(
() => useAdminDiscount(discount.id),
{
wrapper: createWrapper(),
}
)
await waitFor(() => result.current.isSuccess)
expect(result.current.response.status).toEqual(200)
expect(result.current.discount).toEqual(discount)
})
})
describe("useAdminGetDiscountCondition hook", () => {
test("returns a discount condition", async () => {
const discount = fixtures.get("discount")
const { result, waitFor } = renderHook(
() =>
useAdminGetDiscountCondition(
discount.id,
discount.rule.conditions[0].id
),
{
wrapper: createWrapper(),
}
)
await waitFor(() => result.current.isSuccess)
expect(result.current.response.status).toEqual(200)
expect(result.current.discount_condition).toEqual(
discount.rule.conditions[0]
)
})
})