mirror of
https://github.com/stefanpejcic/openpanel
synced 2025-06-26 18:28:26 +00:00
150 lines
4.7 KiB
TypeScript
150 lines
4.7 KiB
TypeScript
import axios from "axios";
|
|
|
|
import JsonServer from "../../src/index";
|
|
import "./index.mock";
|
|
|
|
describe("getList", () => {
|
|
it("correct response", async () => {
|
|
const { data, total } = await JsonServer(
|
|
"https://api.nestjsx-crud.refine.dev",
|
|
axios,
|
|
).getList({ resource: "posts" });
|
|
|
|
expect(data[0]["id"]).toBe("1b175cdc-4407-49d9-82cd-35e9f31afec2");
|
|
expect(data[0]["title"]).toBe("User-friendly New Mexico Bedfordshire");
|
|
expect(total).toBe(135);
|
|
});
|
|
|
|
it("correct sorting response", async () => {
|
|
const { data, total } = await JsonServer(
|
|
"https://api.nestjsx-crud.refine.dev",
|
|
axios,
|
|
).getList({
|
|
resource: "posts",
|
|
sorters: [
|
|
{
|
|
field: "id",
|
|
order: "asc",
|
|
},
|
|
],
|
|
});
|
|
|
|
expect(data[0]["id"]).toBe("011edb32-f071-424a-8747-81d894f52906");
|
|
expect(data[0]["title"]).toBe("Games initiatives online");
|
|
expect(total).toBe(135);
|
|
});
|
|
|
|
it("correct filter response", async () => {
|
|
const { data, total } = await JsonServer(
|
|
"https://api.nestjsx-crud.refine.dev",
|
|
axios,
|
|
).getList({
|
|
resource: "posts",
|
|
filters: [
|
|
{
|
|
field: "category.id",
|
|
operator: "in",
|
|
value: ["73bdc4c0-0cc2-49bb-bd6f-550deb795468"],
|
|
},
|
|
],
|
|
});
|
|
|
|
expect(data[0]["category"]["title"]).toBe("Deposit Capacitor Hdd");
|
|
expect(total).toBe(24);
|
|
});
|
|
|
|
it("correct filter and sort response", async () => {
|
|
const { data, total } = await JsonServer(
|
|
"https://api.nestjsx-crud.refine.dev",
|
|
axios,
|
|
).getList({
|
|
resource: "posts",
|
|
filters: [
|
|
{
|
|
field: "category.id",
|
|
operator: "in",
|
|
value: ["73bdc4c0-0cc2-49bb-bd6f-550deb795468"],
|
|
},
|
|
],
|
|
sorters: [
|
|
{
|
|
field: "id",
|
|
order: "asc",
|
|
},
|
|
],
|
|
});
|
|
|
|
expect(data[0]["title"]).toBe("Games initiatives online");
|
|
expect(total).toBe(24);
|
|
});
|
|
|
|
it("or/and correct filter response", async () => {
|
|
const { data, total } = await JsonServer(
|
|
"https://api.nestjsx-crud.refine.dev",
|
|
axios,
|
|
).getList({
|
|
resource: "posts",
|
|
filters: [
|
|
{
|
|
key: "1",
|
|
operator: "or",
|
|
value: [
|
|
{
|
|
key: "1.1",
|
|
operator: "and",
|
|
value: [
|
|
{
|
|
field: "title",
|
|
operator: "startswith",
|
|
value: "a",
|
|
},
|
|
{
|
|
field: "title",
|
|
operator: "contains",
|
|
value: "heuristic",
|
|
},
|
|
],
|
|
},
|
|
{
|
|
key: "1.2",
|
|
operator: "and",
|
|
value: [
|
|
{
|
|
field: "title",
|
|
operator: "startswith",
|
|
value: "e",
|
|
},
|
|
{
|
|
field: "title",
|
|
operator: "contains",
|
|
value: "invoice",
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
],
|
|
});
|
|
|
|
expect(data[0]["title"]).toBe("Engage Marshall Islands invoice");
|
|
expect(data[1]["title"]).toBe("Avon heuristic Washington");
|
|
expect(total).toBe(2);
|
|
});
|
|
|
|
it("correct response without pagination", async () => {
|
|
const { data, total } = await JsonServer(
|
|
"https://api.nestjsx-crud.refine.dev",
|
|
axios,
|
|
).getList({
|
|
resource: "posts",
|
|
pagination: {
|
|
mode: "off",
|
|
},
|
|
});
|
|
|
|
expect(data[0]["id"]).toBe("1b175cdc-4407-49d9-82cd-35e9f31afec2");
|
|
expect(data[0]["title"]).toBe("User-friendly New Mexico Bedfordshire");
|
|
expect(total).toBe(1);
|
|
});
|
|
});
|