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)) }) })