80 lines
2.2 KiB
TypeScript
80 lines
2.2 KiB
TypeScript
import { useOrderLookup } from "./../../../src/hooks/orders/queries"
|
|
import { rest } from "msw"
|
|
import { server } from "./../../../mocks/server"
|
|
import { useCartOrder, useOrder } from "./../../../src/"
|
|
import { renderHook } from "@testing-library/react-hooks"
|
|
import { fixtures } from "../../../mocks/data"
|
|
import { createWrapper } from "../../utils"
|
|
|
|
describe("useOrder hook", () => {
|
|
test("returns an order", async () => {
|
|
const order = fixtures.get("order")
|
|
const { result, waitFor } = renderHook(() => useOrder(order.id), {
|
|
wrapper: createWrapper(),
|
|
})
|
|
|
|
await waitFor(() => result.current.isSuccess)
|
|
|
|
expect(result.current.response.status).toEqual(200)
|
|
expect(result.current.order).toEqual(order)
|
|
})
|
|
})
|
|
|
|
describe("useCartOrder hook", () => {
|
|
test("returns a cart order", async () => {
|
|
const order = fixtures.get("order")
|
|
const { result, waitFor } = renderHook(() => useCartOrder("test_cart"), {
|
|
wrapper: createWrapper(),
|
|
})
|
|
|
|
await waitFor(() => result.current.isSuccess)
|
|
|
|
expect(result.current.response.status).toEqual(200)
|
|
expect(result.current.order).toEqual(order)
|
|
})
|
|
})
|
|
|
|
describe("useOrderLookup hook", () => {
|
|
test("propagates the query params and returns an order", async () => {
|
|
const order = fixtures.get("order")
|
|
const displayId = 400,
|
|
emailParam = "customer@test.com"
|
|
|
|
server.use(
|
|
rest.get("/store/orders", (req, res, ctx) => {
|
|
const display_id = req.url.searchParams.get("display_id")
|
|
const email = req.url.searchParams.get("email")
|
|
expect({
|
|
display_id,
|
|
email,
|
|
}).toEqual({
|
|
email: emailParam,
|
|
display_id: displayId.toString(),
|
|
})
|
|
return res(
|
|
ctx.status(200),
|
|
ctx.json({
|
|
order,
|
|
})
|
|
)
|
|
})
|
|
)
|
|
|
|
const { result, waitFor } = renderHook(
|
|
() =>
|
|
useOrderLookup({
|
|
display_id: displayId,
|
|
email: emailParam,
|
|
}),
|
|
{
|
|
wrapper: createWrapper(),
|
|
}
|
|
)
|
|
|
|
await waitFor(() => result.current.isSuccess)
|
|
|
|
expect(result.current.response.status).toEqual(200)
|
|
expect(result.current.order).toEqual(order)
|
|
})
|
|
})
|