openpanel/packages/hasura/test/updateMany/index.spec.ts
Stefan Pejcic 8595a9f4e5 back
2024-05-08 19:58:53 +02:00

93 lines
3.2 KiB
TypeScript

import dataProvider from "../../src/index";
import { createClient } from "../gqlClient";
import "./index.mock";
describe.each(["hasura-default", "graphql-default"] as const)(
"updateMany with %s naming convention",
(namingConvention) => {
const client = createClient(namingConvention);
let postsWithMeta = [
{
id: "cf43a199-e791-4b81-a1fd-3ccf8e7f6166",
title: "velit id pretium iaculis",
},
{
id: "9cd924d2-de3b-479a-9882-23feeb0fd80f",
title: "habitasse platea dictumst aliquam",
},
];
let postsWithoutMeta = [
{
id: "e890344b-d7b6-4793-b375-b3c2a7f6deea",
title: "id pretium iaculis",
},
{
id: "3be19a24-ecee-42d9-949b-5f41623b9b5a",
title: "eros suspendisse accumsan",
},
];
if (namingConvention === "graphql-default") {
postsWithMeta = [
{
id: "9fb231b7-a2e6-4602-85a4-7ddab73cd05e",
title: "elit proin interdum mauris non",
},
{
id: "48a5591e-4ab0-45f8-950e-aee8a63769df",
title: "velit eu est congue elementum in",
},
];
postsWithoutMeta = [
{
id: "7086ba36-9746-4f0a-90a1-96d93056d706",
title: "porttitor lorem id ligula",
},
{
id: "d682533d-9abe-4dcb-bfa5-801acd0ef5ab",
title: "integer ac neque duis bibendum morbi",
},
];
}
it("correct response with meta", async () => {
const { data } = await dataProvider(client, {
namingConvention,
}).updateMany!({
resource: "posts",
ids: postsWithMeta.map((post) => post.id),
variables: {
content: "Updated Content",
},
meta: {
fields: ["id", "title", "content"],
},
});
expect(data[0]["id"]).toEqual(postsWithMeta[0]["id"]);
expect(data[0]["title"]).toEqual(postsWithMeta[0]["title"]);
expect(data[0]["content"]).toEqual("Updated Content");
expect(data[1]["id"]).toEqual(postsWithMeta[1]["id"]);
expect(data[1]["title"]).toEqual(postsWithMeta[1]["title"]);
expect(data[1]["content"]).toEqual("Updated Content");
});
it("correct response without meta", async () => {
const { data } = await dataProvider(client, {
namingConvention,
}).updateMany!({
resource: "posts",
ids: postsWithoutMeta.map((post) => post.id),
variables: {
title: "Multiple Updated Title",
content: "Multiple Updated Content",
},
});
expect(data[0]["id"]).toEqual(postsWithoutMeta[0]["id"]);
expect(data[1]["id"]).toEqual(postsWithoutMeta[1]["id"]);
});
},
);