90 lines
2.0 KiB
TypeScript
90 lines
2.0 KiB
TypeScript
import {
|
|
useCreateLineItem,
|
|
useUpdateLineItem,
|
|
useDeleteLineItem,
|
|
} from "./../../../src/"
|
|
import { renderHook } from "@testing-library/react-hooks"
|
|
import { fixtures } from "../../../mocks/data"
|
|
import { createWrapper } from "../../utils"
|
|
|
|
describe("useCreateLineItem hook", () => {
|
|
test("creates a line item", async () => {
|
|
const lineItem = {
|
|
variant_id: "test-variant",
|
|
quantity: 1,
|
|
}
|
|
|
|
const { result, waitFor } = renderHook(
|
|
() => useCreateLineItem("test-cart"),
|
|
{
|
|
wrapper: createWrapper(),
|
|
}
|
|
)
|
|
|
|
result.current.mutate(lineItem)
|
|
|
|
await waitFor(() => result.current.isSuccess)
|
|
|
|
expect(result.current.data.response.status).toEqual(200)
|
|
expect(result.current.data.cart.items).toEqual(
|
|
expect.arrayContaining([
|
|
expect.objectContaining({
|
|
...lineItem,
|
|
}),
|
|
])
|
|
)
|
|
})
|
|
})
|
|
|
|
describe("useUpdateLineItem hook", () => {
|
|
test("updates a line item", async () => {
|
|
const lineItem = {
|
|
lineId: "some-item-id",
|
|
quantity: 3,
|
|
}
|
|
|
|
const { result, waitFor } = renderHook(
|
|
() => useUpdateLineItem("test-cart"),
|
|
{
|
|
wrapper: createWrapper(),
|
|
}
|
|
)
|
|
|
|
result.current.mutate(lineItem)
|
|
|
|
await waitFor(() => result.current.isSuccess)
|
|
|
|
expect(result.current.data.response.status).toEqual(200)
|
|
expect(result.current.data.cart.items).toEqual(
|
|
expect.arrayContaining([
|
|
expect.objectContaining({
|
|
id: lineItem.lineId,
|
|
quantity: lineItem.quantity,
|
|
}),
|
|
])
|
|
)
|
|
})
|
|
})
|
|
|
|
describe("useDeleteLineItem hook", () => {
|
|
test("deletes a line item", async () => {
|
|
const lineItem = {
|
|
lineId: "some-item-id",
|
|
}
|
|
|
|
const { result, waitFor } = renderHook(
|
|
() => useDeleteLineItem("test-cart"),
|
|
{
|
|
wrapper: createWrapper(),
|
|
}
|
|
)
|
|
|
|
result.current.mutate(lineItem)
|
|
|
|
await waitFor(() => result.current.isSuccess)
|
|
|
|
expect(result.current.data.response.status).toEqual(200)
|
|
expect(result.current.data.cart).toEqual(fixtures.get("cart"))
|
|
})
|
|
})
|