Home / File/ registry.test.ts — ui Source File

registry.test.ts — ui Source File

Architecture documentation for registry.test.ts, a typescript file in the ui codebase. 5 imports, 0 dependents.

Entity Profile

Dependency Diagram

graph LR
  e1e4fe12_f94e_9708_96a3_f46784286b86["registry.test.ts"]
  c41eed12_c415_48c8_bcf4_9d09d3424a18["api.ts"]
  e1e4fe12_f94e_9708_96a3_f46784286b86 --> c41eed12_c415_48c8_bcf4_9d09d3424a18
  476dcfe7_0a2a_4ebb_5e7d_e4200f6d58a8["resolveTree"]
  e1e4fe12_f94e_9708_96a3_f46784286b86 --> 476dcfe7_0a2a_4ebb_5e7d_e4200f6d58a8
  d622c874_d9cc_69e4_4150_aadbf45b3cda["schema.ts"]
  e1e4fe12_f94e_9708_96a3_f46784286b86 --> d622c874_d9cc_69e4_4150_aadbf45b3cda
  c8d55bee_7008_1e1f_317b_8dc47b31b6a8["vitest"]
  e1e4fe12_f94e_9708_96a3_f46784286b86 --> c8d55bee_7008_1e1f_317b_8dc47b31b6a8
  6802ce19_522d_e5fb_e458_8826d9f6952e["zod"]
  e1e4fe12_f94e_9708_96a3_f46784286b86 --> 6802ce19_522d_e5fb_e458_8826d9f6952e
  style e1e4fe12_f94e_9708_96a3_f46784286b86 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { expect, test } from "vitest"
import { z } from "zod"

import { resolveTree } from "../../src/registry/api"
import { registryItemSchema } from "../../src/registry/schema"

test("resolve tree", async () => {
  const index = [
    {
      name: "button",
      dependencies: ["@radix-ui/react-slot"],
      type: "registry:ui",
      files: [{ type: "registry:ui", path: "button.tsx" }],
    },
    {
      name: "dialog",
      dependencies: ["@radix-ui/react-dialog"],
      registryDependencies: ["button"],
      type: "registry:ui",
      files: [{ type: "registry:ui", path: "dialog.tsx" }],
    },
    {
      name: "input",
      registryDependencies: ["button"],
      type: "registry:ui",
      files: [{ type: "registry:ui", path: "input.tsx" }],
    },
    {
      name: "alert-dialog",
      dependencies: ["@radix-ui/react-alert-dialog"],
      registryDependencies: ["button", "dialog"],
      type: "registry:ui",
      files: [{ type: "registry:ui", path: "alert-dialog.tsx" }],
    },
    {
      name: "example-card",
      type: "registry:component",
      files: [{ type: "registry:component", path: "example-card.tsx" }],
      registryDependencies: ["button", "dialog", "input"],
    },
  ] satisfies z.infer<typeof registryItemSchema>[]

  expect(
    (await resolveTree(index, ["button"])).map((entry) => entry.name).sort()
  ).toEqual(["button"])

  expect(
    (await resolveTree(index, ["dialog"])).map((entry) => entry.name).sort()
  ).toEqual(["button", "dialog"])

  expect(
    (await resolveTree(index, ["alert-dialog", "dialog"]))
      .map((entry) => entry.name)
      .sort()
  ).toEqual(["alert-dialog", "button", "dialog"])

  expect(
    (await resolveTree(index, ["example-card"]))
      .map((entry) => entry.name)
      .sort()
  ).toEqual(["button", "dialog", "example-card", "input"])

  expect(
    (await resolveTree(index, ["foo"])).map((entry) => entry.name).sort()
  ).toEqual([])

  expect(
    (await resolveTree(index, ["button", "foo"]))
      .map((entry) => entry.name)
      .sort()
  ).toEqual(["button"])
})

Dependencies

Frequently Asked Questions

What does registry.test.ts do?
registry.test.ts is a source file in the ui codebase, written in typescript. It belongs to the FrameworkTooling domain.
What does registry.test.ts depend on?
registry.test.ts imports 5 module(s): api.ts, resolveTree, schema.ts, vitest, zod.
Where is registry.test.ts in the architecture?
registry.test.ts is located at packages/shadcn/test/utils/registry.test.ts (domain: FrameworkTooling, directory: packages/shadcn/test/utils).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free