Files
shadcn/pkg/cli/test/utils/get-tailwind-css-file.test.ts
zeekayandGitHub 5631dbe739 decouple @hanzogui, standardize on 'pkgs/', etc (#228)
* refactor: decouple @hanzo/ui from hanzogui

  Make @hanzo/ui shadcn-only — no hanzogui/Tamagui coupling.

  - remove primitives/bases (gui/admin/svelte/vue) re-exports
  - drop @hanzogui peerDependencies + peerDependenciesMeta entries
  - add check-no-hanzogui guard, wired into build
  - fix latent NodeJS.Timeout types to keep the build green

* refactor: remove duplicate @hanzo/brand from the monorepo

  @hanzo/brand is owned by the standalone hanzoai/brand (the npm-canonical
  source); this monorepo's copy was unused and had drifted.

  - delete pkg/brand
  - add check-no-brand-pkg guard (wired into `check`) so it can't reappear

* refactor(ui): stop importing from the app; use own cn util

  pkg/ui pulled `cn` from @/lib/utils (../../app) — an inverted dependency on
  the consuming app. Point the animation components at pkg/ui's own cn and
  drop the @/app, @/registry, @/lib tsconfig path aliases.

* fix(ui): type errors; stop tracking the root lockfile

  - ModelCard: lucide-react dropped the Github icon → use Code
  - drawer: annotate DrawerTrigger/DrawerClose (radix type portability)
  - untrack root pnpm-lock.yaml; CI → --no-frozen-lockfile

* release: bump @hanzo/ui to 5.7.0

* refactor: rename pkg/ → pkgs/, merge packages/ into it

  standardize on 'pkgs/': move pkg/* and packages/* into pkgs/.
  Update workspace globs, CI, scripts, and config references accordingly.
2026-06-19 15:30:30 -10:00

77 lines
1.9 KiB
TypeScript

import path from "path"
import { describe, expect, test } from "vitest"
import { getTailwindCssFile } from "../../src/utils/get-project-info"
describe("get tailwindcss file", async () => {
test.each([
{
name: "next-app",
file: "app/globals.css",
},
{
name: "next-app-src",
file: "src/app/styles.css",
},
{
name: "next-pages",
file: "styles/globals.css",
},
{
name: "next-pages-src",
file: "src/styles/globals.css",
},
{
name: "t3-app",
file: "src/styles/globals.css",
},
{
name: "t3-pages",
file: "src/styles/globals.css",
},
{
name: "remix",
file: "app/tailwind.css",
},
{
name: "vite",
file: "src/index.css",
},
])(`getTailwindCssFile($name) -> $file`, async ({ name, file }) => {
expect(
await getTailwindCssFile(
path.resolve(__dirname, `../fixtures/frameworks/${name}`)
)
).toBe(file)
})
test("should use configCssFile when provided and file exists", async () => {
const cwd = path.resolve(
__dirname,
"../fixtures/frameworks/next-monorepo"
)
expect(
await getTailwindCssFile(cwd, "packages/ui/src/globals.css")
).toBe("packages/ui/src/globals.css")
})
test("should fall back to glob when configCssFile does not exist", async () => {
const cwd = path.resolve(__dirname, "../fixtures/frameworks/next-app")
expect(
await getTailwindCssFile(cwd, "nonexistent/styles.css")
).toBe("app/globals.css")
})
test("should return null when no css file found and no configCssFile", async () => {
const cwd = path.resolve(
__dirname,
"../fixtures/frameworks/next-monorepo"
)
// The CSS file is nested under packages/ which the glob finds.
// Without configCssFile, it should still find it via glob.
expect(await getTailwindCssFile(cwd)).toBe(
"packages/ui/src/globals.css"
)
})
})