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

176 lines
3.2 KiB
TypeScript

import { describe, expect, it } from 'vitest'
import { transformCssVars } from '../../../src/utils/updaters/update-css-vars'
describe('transformCssVars', () => {
it('should add light and dark css vars if not present', async () => {
expect(
await transformCssVars(
`@tailwind base;
@tailwind components;
@tailwind utilities;
`,
{
light: {
background: 'white',
foreground: 'black',
},
dark: {
background: 'black',
foreground: 'white',
},
},
{
tailwind: {
cssVariables: true,
},
},
),
).toMatchInlineSnapshot(`
"@tailwind base;
@tailwind components;
@tailwind utilities;
@layer base {
:root {
--background: white;
--foreground: black
}
.dark {
--background: black;
--foreground: white
}
}
@layer base {
* {
@apply border-border;
}
body {
@apply bg-background text-foreground;
}
}
"
`)
})
it('should update light and dark css vars if present', async () => {
expect(
await transformCssVars(
`@tailwind base;
@tailwind components;
@tailwind utilities;
@layer base{
:root{
--background: 210 40% 98%;
}
.dark{
--background: 222.2 84% 4.9%;
}
}
`,
{
light: {
background: '215 20.2% 65.1%',
foreground: '222.2 84% 4.9%',
},
dark: {
foreground: '60 9.1% 97.8%',
},
},
{
tailwind: {
cssVariables: true,
},
},
),
).toMatchInlineSnapshot(`
"@tailwind base;
@tailwind components;
@tailwind utilities;
@layer base{
:root{
--background: 215 20.2% 65.1%;
--foreground: 222.2 84% 4.9%;
}
.dark{
--background: 222.2 84% 4.9%;
--foreground: 60 9.1% 97.8%;
}
}
@layer base {
* {
@apply border-border;
}
body {
@apply bg-background text-foreground;
}
}
"
`)
})
it('should not add the base layer if it is already present', async () => {
expect(
await transformCssVars(
`@tailwind base;
@tailwind components;
@tailwind utilities;
@layer base{
:root{
--background: 210 40% 98%;
}
.dark{
--background: 222.2 84% 4.9%;
}
}
@layer base {
* {
@apply border-border;
}
body {
@apply bg-background text-foreground;
}
}
`,
{},
{
tailwind: {
cssVariables: true,
},
},
),
).toMatchInlineSnapshot(`
"@tailwind base;
@tailwind components;
@tailwind utilities;
@layer base{
:root{
--background: 210 40% 98%;
}
.dark{
--background: 222.2 84% 4.9%;
}
}
@layer base {
* {
@apply border-border;
}
body {
@apply bg-background text-foreground;
}
}
"
`)
})
})