96 lines
2.7 KiB
TypeScript
96 lines
2.7 KiB
TypeScript
import {
|
|
MetaQuery,
|
|
Pagination,
|
|
CrudSorting,
|
|
CrudFilters,
|
|
} from "@refinedev/core";
|
|
import {
|
|
generateUseListSubscription,
|
|
genereteUseListSubscription,
|
|
} from "../../src/utils";
|
|
|
|
describe("generateUseListSubscription", () => {
|
|
const resource = "post";
|
|
const meta: MetaQuery = {
|
|
operation: "posts",
|
|
fields: ["id", "title", "createdAt"],
|
|
};
|
|
const pagination: Pagination = {
|
|
current: 2,
|
|
pageSize: 5,
|
|
mode: "server",
|
|
};
|
|
const sorters: CrudSorting = [{ field: "title", order: "asc" }];
|
|
const filters: CrudFilters = [
|
|
{ field: "published", operator: "eq", value: true },
|
|
];
|
|
|
|
it("should generate a valid useListSubscription query with pagination, sorters, and filters", () => {
|
|
const { query, variables, operation } = generateUseListSubscription({
|
|
resource,
|
|
meta,
|
|
pagination,
|
|
sorters,
|
|
filters,
|
|
});
|
|
|
|
expect(operation).toEqual(meta.operation);
|
|
expect(query).toContain(meta.operation);
|
|
expect(query).toMatch(/id/);
|
|
expect(query).toMatch(/title/);
|
|
expect(query).toMatch(/createdAt/);
|
|
expect(variables).toEqual({
|
|
limit: 5,
|
|
offset: 5,
|
|
order_by: { title: "asc" },
|
|
where: { _and: [{ published: { _eq: true } }] },
|
|
});
|
|
});
|
|
|
|
it("should generate a valid useListSubscription query without pagination, sorters, or filters", () => {
|
|
const { query, variables, operation } = generateUseListSubscription({
|
|
resource,
|
|
meta,
|
|
});
|
|
|
|
expect(operation).toEqual(meta.operation);
|
|
expect(query).toContain(meta.operation);
|
|
expect(variables).toEqual({ limit: 10, offset: 0 });
|
|
});
|
|
|
|
it("should generate a subscription without pagination when mode is client ", () => {
|
|
const { variables } = generateUseListSubscription({
|
|
resource,
|
|
meta,
|
|
pagination: { ...pagination, mode: "client" },
|
|
sorters,
|
|
filters,
|
|
});
|
|
|
|
expect(variables).toEqual({
|
|
order_by: { title: "asc" },
|
|
where: { _and: [{ published: { _eq: true } }] },
|
|
});
|
|
});
|
|
|
|
it("should be genereteUseListSubscription(deprecated) and equal to generateUseListSubscription", () => {
|
|
expect(
|
|
genereteUseListSubscription({
|
|
resource,
|
|
meta,
|
|
pagination,
|
|
sorters,
|
|
filters,
|
|
}),
|
|
).toEqual(
|
|
generateUseListSubscription({
|
|
resource,
|
|
meta,
|
|
pagination,
|
|
sorters,
|
|
filters,
|
|
}),
|
|
);
|
|
});
|
|
});
|