import { parseJsx } from '../__tests__/utils'
import { printAst, transformSource, type TransformSourceArgs } from '../utils'
import { transformCardVariantToColor } from './transformCardVariantToColor'
const transformCard = (sourceFile: TransformSourceArgs['sourceFile']): string => {
const tagsMap = new Map([
[
'Card',
{
importModuleName: '@kaizen/components',
tagName: 'Card',
originalName: 'Card',
},
],
])
return transformSource({
sourceFile,
transformers: [transformCardVariantToColor(tagsMap)],
})
}
describe('transformCardVariantToColor()', () => {
it('replaces variant="assertive" with color="orange"', () => {
const inputAst = parseJsx(
'export const TestComponent = () => Hello',
)
const outputAst = parseJsx(
'export const TestComponent = () => Hello',
)
expect(transformCard(inputAst)).toEqual(printAst(outputAst))
})
it('replaces variant="cautionary" with color="yellow"', () => {
const inputAst = parseJsx(
'export const TestComponent = () => Hello',
)
const outputAst = parseJsx(
'export const TestComponent = () => Hello',
)
expect(transformCard(inputAst)).toEqual(printAst(outputAst))
})
it('replaces variant="default" with color="white"', () => {
const inputAst = parseJsx(
'export const TestComponent = () => Hello',
)
const outputAst = parseJsx(
'export const TestComponent = () => Hello',
)
expect(transformCard(inputAst)).toEqual(printAst(outputAst))
})
it('replaces variant="destructive" with color="red"', () => {
const inputAst = parseJsx(
'export const TestComponent = () => Hello',
)
const outputAst = parseJsx('export const TestComponent = () => Hello')
expect(transformCard(inputAst)).toEqual(printAst(outputAst))
})
it('replaces variant="highlight" with color="purple"', () => {
const inputAst = parseJsx(
'export const TestComponent = () => Hello',
)
const outputAst = parseJsx(
'export const TestComponent = () => Hello',
)
expect(transformCard(inputAst)).toEqual(printAst(outputAst))
})
it('replaces variant="informative" with color="blue"', () => {
const inputAst = parseJsx(
'export const TestComponent = () => Hello',
)
const outputAst = parseJsx('export const TestComponent = () => Hello')
expect(transformCard(inputAst)).toEqual(printAst(outputAst))
})
it('replaces variant="positive" with color="green"', () => {
const inputAst = parseJsx(
'export const TestComponent = () => Hello',
)
const outputAst = parseJsx(
'export const TestComponent = () => Hello',
)
expect(transformCard(inputAst)).toEqual(printAst(outputAst))
})
it('If no variant exists, it does not add one', () => {
const inputAst = parseJsx('export const TestComponent = () => Hello')
const outputAst = parseJsx('export const TestComponent = () => Hello')
expect(transformCard(inputAst)).toEqual(printAst(outputAst))
})
})