shadcn-vue/packages/cli/test/utils/updaters/update-tailwind-content.test.ts
2024-11-22 15:03:41 +08:00

95 lines
2.3 KiB
TypeScript

import { describe, expect, it } from 'vitest'
import { transformTailwindContent } from '../../../src/utils/updaters/update-tailwind-content'
const SHARED_CONFIG = {
$schema: 'https://shadcn-vue.com/schema.json',
style: 'new-york',
rsc: true,
tsx: true,
tailwind: {
config: 'tailwind.config.ts',
css: 'app/globals.css',
baseColor: 'slate',
cssVariables: true,
},
aliases: {
components: '@/components',
utils: '@/lib/utils',
},
resolvedPaths: {
cwd: '.',
tailwindConfig: 'tailwind.config.ts',
tailwindCss: 'app/globals.css',
components: './components',
utils: './lib/utils',
ui: './components/ui',
},
}
describe('transformTailwindContent -> content property', () => {
it('should add content property if not in config', async () => {
expect(
await transformTailwindContent(
`import type { Config } from 'tailwindcss'
const config: Config = {
content: [
"./pages/**/*.{js,ts,jsx,tsx,mdx}",
"./components/**/*.{js,ts,jsx,tsx,mdx}",
"./app/**/*.{js,ts,jsx,tsx,mdx}",
],
theme: {
extend: {
backgroundImage: {
"gradient-radial": "radial-gradient(var(--tw-gradient-stops))",
"gradient-conic":
"conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))",
},
},
},
plugins: [],
}
export default config
`,
['./foo/**/*.{js,ts,jsx,tsx,mdx}', './bar/**/*.{js,ts,jsx,tsx,mdx}'],
{
config: SHARED_CONFIG,
},
),
).toMatchSnapshot()
})
it('should NOT add content property if already in config', async () => {
expect(
await transformTailwindContent(
`import type { Config } from 'tailwindcss'
const config: Config = {
content: [
"./pages/**/*.{js,ts,jsx,tsx,mdx}",
"./components/**/*.{js,ts,jsx,tsx,mdx}",
"./app/**/*.{js,ts,jsx,tsx,mdx}",
],
theme: {
extend: {
backgroundImage: {
"gradient-radial": "radial-gradient(var(--tw-gradient-stops))",
"gradient-conic":
"conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))",
},
},
},
plugins: [],
}
export default config
`,
['./app/**/*.{js,ts,jsx,tsx,mdx}', './bar/**/*.{js,ts,jsx,tsx,mdx}'],
{
config: SHARED_CONFIG,
},
),
).toMatchSnapshot()
})
})