import { parseJsx } from '../__tests__/utils' import { printAst, transformSource, type TransformSourceArgs } from '../utils' import { transformInformationTileMoodToVariant } from './transformInformationTileMoodToVariant' const transformInformationTile = (sourceFile: TransformSourceArgs['sourceFile']): string => { const tagsMap = new Map([ [ 'InformationTile', { importModuleName: '@kaizen/components', tagName: 'InformationTile', originalName: 'InformationTile', }, ], ]) return transformSource({ sourceFile, transformers: [transformInformationTileMoodToVariant(tagsMap)], }) } describe('transformInformationTileMoodToVariant()', () => { it('replaces mood="positive" with variant="default"', () => { const inputAst = parseJsx( 'export const TestComponent = () => Hello', ) const outputAst = parseJsx( 'export const TestComponent = () => Hello', ) expect(transformInformationTile(inputAst)).toEqual(printAst(outputAst)) }) it('replaces mood="informative" with variant="default"', () => { const inputAst = parseJsx( 'export const TestComponent = () => Hello', ) const outputAst = parseJsx( 'export const TestComponent = () => Hello', ) expect(transformInformationTile(inputAst)).toEqual(printAst(outputAst)) }) it('replaces mood="cautionary" with variant="default"', () => { const inputAst = parseJsx( 'export const TestComponent = () => Hello', ) const outputAst = parseJsx( 'export const TestComponent = () => Hello', ) expect(transformInformationTile(inputAst)).toEqual(printAst(outputAst)) }) it('replaces mood="assertive" with variant="default"', () => { const inputAst = parseJsx( 'export const TestComponent = () => Hello', ) const outputAst = parseJsx( 'export const TestComponent = () => Hello', ) expect(transformInformationTile(inputAst)).toEqual(printAst(outputAst)) }) it('replaces mood="negative" with variant="default"', () => { const inputAst = parseJsx( 'export const TestComponent = () => Hello', ) const outputAst = parseJsx( 'export const TestComponent = () => Hello', ) expect(transformInformationTile(inputAst)).toEqual(printAst(outputAst)) }) it('replaces mood="prominent" with variant="expert-advice"', () => { const inputAst = parseJsx( 'export const TestComponent = () => Hello', ) const outputAst = parseJsx( 'export const TestComponent = () => Hello', ) expect(transformInformationTile(inputAst)).toEqual(printAst(outputAst)) }) it('does not add variant if mood was not defined', () => { const inputAst = parseJsx( 'export const TestComponent = () => Hello', ) const outputAst = parseJsx( 'export const TestComponent = () => Hello', ) expect(transformInformationTile(inputAst)).toEqual(printAst(outputAst)) }) })