pankod/refine

View on GitHub
packages/core/src/definitions/helpers/router/__tests__/get-parent-prefix-for-resource.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { getParentPrefixForResource } from "../get-parent-prefix-for-resource";

describe("getParentPrefixForResource", () => {
  it("should return undefined if no parent is found", () => {
    const resources = [
      {
        name: "users",
      },
    ];

    expect(getParentPrefixForResource(resources[0], resources)).toBe(undefined);
  });

  it("should return the parent prefix", () => {
    const resources = [
      {
        name: "users",
      },
      {
        name: "posts",
        meta: {
          parent: "users",
        },
      },
    ];

    expect(getParentPrefixForResource(resources[1], resources)).toBe("/users");
  });

  it("should return the parent prefix for deeply nested resources", () => {
    const resources = [
      {
        name: "users",
      },
      {
        name: "posts",
        meta: {
          parent: "users",
        },
      },
      {
        name: "comments",
        meta: {
          parent: "posts",
        },
      },
    ];

    expect(getParentPrefixForResource(resources[2], resources)).toBe(
      "/users/posts",
    );
  });

  it("should return the parent prefix for deeply nested resources with legacy routes", () => {
    const resources = [
      {
        name: "users",
        options: {
          route: "custom-users",
        },
      },
      {
        name: "posts",
        meta: {
          parent: "users",
        },
      },
      {
        name: "comments",
        meta: {
          parent: "posts",
        },
      },
    ];

    expect(getParentPrefixForResource(resources[2], resources, true)).toBe(
      "/custom-users/posts",
    );
  });
});