Files
medusa-store/packages/medusa-react/test/hooks/admin/publishable-api-keys/mutations.test.ts
2023-03-03 10:09:16 +01:00

168 lines
4.4 KiB
TypeScript

import { renderHook } from "@testing-library/react-hooks/dom"
import { fixtures } from "../../../../mocks/data"
import {
useAdminAddPublishableKeySalesChannelsBatch,
useAdminCreatePublishableApiKey,
useAdminDeletePublishableApiKey,
useAdminRemovePublishableKeySalesChannelsBatch,
useAdminRevokePublishableApiKey,
useAdminUpdatePublishableApiKey,
} from "../../../../src"
import { createWrapper } from "../../../utils"
describe("useAdminCreatePublishableApiKey hook", () => {
test("Created a publishable api key", async () => {
const { result, waitFor } = renderHook(
() => useAdminCreatePublishableApiKey(),
{
wrapper: createWrapper(),
}
)
result.current.mutate({ title: "Mandatory title" })
await waitFor(() => result.current.isSuccess)
expect(result.current.data.response.status).toEqual(200)
expect(result.current.data).toEqual(
expect.objectContaining({
publishable_api_key: {
title: "Mandatory title",
...fixtures.get("publishable_api_key"),
},
})
)
})
})
describe("useAdminUpdatePublishableApiKey hook", () => {
test("updates an publishable key and returns it", async () => {
const pubKey = {
title: "changed title",
}
const { result, waitFor } = renderHook(
() =>
useAdminUpdatePublishableApiKey(fixtures.get("publishable_api_key").id),
{
wrapper: createWrapper(),
}
)
result.current.mutate(pubKey)
await waitFor(() => result.current.isSuccess)
expect(result.current.data.response.status).toEqual(200)
expect(result.current.data.publishable_api_key).toEqual(
expect.objectContaining({
...fixtures.get("publishable_api_key"),
...pubKey,
})
)
})
})
describe("useAdminRevokePublishableApiKey hook", () => {
test("Revoke a publishable api key", async () => {
const id = "pubkey_1234"
const { result, waitFor } = renderHook(
() => useAdminRevokePublishableApiKey(id),
{
wrapper: createWrapper(),
}
)
result.current.mutate()
await waitFor(() => result.current.isSuccess)
expect(result.current.data.response.status).toEqual(200)
expect(result.current.data).toEqual(
expect.objectContaining({
publishable_api_key: {
...fixtures.get("publishable_api_key"),
revoked_at: "2022-11-10 11:17:46.666Z",
revoked_by: "admin_user",
id,
},
})
)
})
})
describe("useAdminDeletePublishableApiKey hook", () => {
test("Deletes a publishable api key", async () => {
const id = "pubkey_1234"
const { result, waitFor } = renderHook(
() => useAdminDeletePublishableApiKey(id),
{
wrapper: createWrapper(),
}
)
result.current.mutate()
await waitFor(() => result.current.isSuccess)
expect(result.current.data.response.status).toEqual(200)
expect(result.current.data).toEqual(
expect.objectContaining({
id,
object: "publishable_api_key",
deleted: true,
})
)
})
})
describe("useAdminAddPublishableKeySalesChannelsBatch hook", () => {
test("Adds a SC to the publishable api key scope", async () => {
const id = "pubkey_1234"
const { result, waitFor } = renderHook(
() => useAdminAddPublishableKeySalesChannelsBatch(id),
{
wrapper: createWrapper(),
}
)
result.current.mutate({
sales_channel_ids: [{ id: "rand_id" }],
})
await waitFor(() => result.current.isSuccess)
expect(result.current.data.response.status).toEqual(200)
expect(result.current.data.publishable_api_key).toEqual(
expect.objectContaining({
...fixtures.get("publishable_api_key"),
})
)
})
})
describe("useAdminRemovePublishableKeySalesChannelsBatch hook", () => {
test("Deletes a SC from the publishable api key scope", async () => {
const id = "pubkey_1234"
const { result, waitFor } = renderHook(
() => useAdminRemovePublishableKeySalesChannelsBatch(id),
{
wrapper: createWrapper(),
}
)
result.current.mutate({
sales_channel_ids: [{ id: "rand_id" }],
})
await waitFor(() => result.current.isSuccess)
expect(result.current.data.response.status).toEqual(200)
expect(result.current.data.publishable_api_key).toEqual(
expect.objectContaining({
...fixtures.get("publishable_api_key"),
})
)
})
})