@refinedev/core
Version:
refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.
53 lines (40 loc) • 1.25 kB
text/typescript
import { composeRoute } from "../compose-route";
describe("composeRoute", () => {
it("should compose single slash", () => {
const result = composeRoute("/");
expect(result).toEqual("/");
});
it("should return the route as same if no params are found", () => {
const result = composeRoute("/users", { id: 1 });
expect(result).toEqual("/users");
});
it("should return the route with params replaced", () => {
const result = composeRoute("/users/:id", { id: 1 });
expect(result).toEqual("/users/1");
});
it("should return the route with multiple params replaced", () => {
const result = composeRoute(
"/users/:id/:name",
{ name: "Jane" },
{ id: 5 },
{
id: 1,
name: "John",
},
);
expect(result).toEqual("/users/1/John");
});
it("should return the route with multiple params by prioritizing meta params", () => {
const result = composeRoute(
"/users/:id/:name",
{},
{ id: 1 },
{ name: "Doe" },
);
expect(result).toEqual("/users/1/Doe");
});
it("should return route when not match object", () => {
const result = composeRoute("/users/:other", {});
expect(result).toEqual("/users/:other");
});
});