OpenPanel/packages/nestjs-query/test/create/index.spec.ts
Stefan Pejcic 8595a9f4e5 back
2024-05-08 19:58:53 +02:00

124 lines
4.1 KiB
TypeScript

import gql from "graphql-tag";
import dataProvider from "../../src/index";
import client from "../gqlClient";
import "./index.mock";
describe("create", () => {
describe("gql", () => {
it("correct response with mutation", async () => {
const { data } = await dataProvider(client).create({
resource: "blog_posts",
variables: {
title: "foo",
content: "bar",
categoryId: "1",
status: "DRAFT",
createdAt: "2023-08-08T11:40:35.779Z",
},
meta: {
gqlMutation: gql`
mutation CreateOneBlogPost(
$input: CreateOneBlogPostInput!
) {
createOneBlogPost(input: $input) {
id
title
content
status
category {
id
}
}
}
`,
},
});
expect(data["title"]).toEqual("foo");
expect(data["content"]).toEqual("bar");
expect(data["category"].id).toEqual("1");
expect(data["status"]).toEqual("DRAFT");
});
it("correct response with query", async () => {
const { data } = await dataProvider(client).create({
resource: "blog_posts",
variables: {
title: "foo",
content: "bar",
categoryId: "1",
status: "DRAFT",
createdAt: "2023-08-08T11:40:35.779Z",
},
meta: {
gqlQuery: gql`
mutation CreateOneBlogPost(
$input: CreateOneBlogPostInput!
) {
createOneBlogPost(input: $input) {
id
title
content
status
category {
id
}
}
}
`,
},
});
expect(data["title"]).toEqual("foo");
expect(data["content"]).toEqual("bar");
expect(data["category"].id).toEqual("1");
expect(data["status"]).toEqual("DRAFT");
});
});
describe("fields (legacy)", () => {
it("correct response with meta", async () => {
const { data } = await dataProvider(client).create({
resource: "blog_posts",
variables: {
title: "foo",
content: "bar",
categoryId: "1",
status: "DRAFT",
createdAt: "2023-08-08T11:40:35.779Z",
},
meta: {
fields: [
"id",
"title",
"content",
"status",
{ category: ["id"] },
],
},
});
expect(data["title"]).toEqual("foo");
expect(data["content"]).toEqual("bar");
expect(data["category"].id).toEqual("1");
expect(data["status"]).toEqual("DRAFT");
});
it("correct response without meta", async () => {
const { data } = await dataProvider(client).create({
resource: "blog_posts",
variables: {
title: "foo",
content: "bar",
categoryId: 1,
status: "DRAFT",
createdAt: "2023-08-08T11:40:35.803Z",
},
});
expect(data["id"]).toBeDefined();
});
});
});