mirror of
https://github.com/stefanpejcic/openpanel
synced 2025-06-26 18:28:26 +00:00
40 lines
1.2 KiB
TypeScript
40 lines
1.2 KiB
TypeScript
import { CrudSorting } from "@refinedev/core";
|
|
import { generateSorting } from "../../src/utils";
|
|
|
|
describe("generateSorting", () => {
|
|
it.each([undefined, null])(
|
|
"should return undefined when sorters is %p",
|
|
(sorters) => {
|
|
expect(generateSorting(sorters as unknown as CrudSorting)).toEqual(
|
|
undefined,
|
|
);
|
|
},
|
|
);
|
|
|
|
it("should return correct HasuraSortingType when sorters is provided", () => {
|
|
const sorters: CrudSorting = [
|
|
{ field: "name", order: "asc" },
|
|
{ field: "createdAt", order: "desc" },
|
|
];
|
|
const expectedSorting = {
|
|
name: "asc",
|
|
createdAt: "desc",
|
|
};
|
|
expect(generateSorting(sorters)).toEqual(expectedSorting);
|
|
});
|
|
|
|
it("should handle nested fields correctly", () => {
|
|
const sorters: CrudSorting = [
|
|
{ field: "author.name", order: "asc" },
|
|
{ field: "createdAt", order: "desc" },
|
|
];
|
|
const expectedSorting = {
|
|
author: {
|
|
name: "asc",
|
|
},
|
|
createdAt: "desc",
|
|
};
|
|
expect(generateSorting(sorters)).toEqual(expectedSorting);
|
|
});
|
|
});
|