import { parseJsx } from '../__tests__/utils' import { printAst, transformSource, type TransformSourceArgs } from '../utils' import { transformEmptyStateIllustrationTypeToVariant } from './transformEmptyStateIllustrationTypeToVariant' const transformEmptyState = (sourceFile: TransformSourceArgs['sourceFile']): string => { const tagsMap = new Map([ [ 'EmptyState', { importModuleName: '@kaizen/components', tagName: 'EmptyState', originalName: 'EmptyState', }, ], ]) return transformSource({ sourceFile, transformers: [transformEmptyStateIllustrationTypeToVariant(tagsMap)], }) } describe('transformEmptyStateIllustrationTypeToVariant()', () => { it('replaces illustrationType="positive" with variant="success"', () => { const inputAst = parseJsx( 'export const TestComponent = () => Hello', ) const outputAst = parseJsx( 'export const TestComponent = () => Hello', ) expect(transformEmptyState(inputAst)).toEqual(printAst(outputAst)) }) it('replaces illustrationType="informative" with variant="informative"', () => { const inputAst = parseJsx( 'export const TestComponent = () => Hello', ) const outputAst = parseJsx( 'export const TestComponent = () => Hello', ) expect(transformEmptyState(inputAst)).toEqual(printAst(outputAst)) }) it('replaces illustrationType="negative" with variant="warning"', () => { const inputAst = parseJsx( 'export const TestComponent = () => Hello', ) const outputAst = parseJsx( 'export const TestComponent = () => Hello', ) expect(transformEmptyState(inputAst)).toEqual(printAst(outputAst)) }) it('replaces illustrationType="action" with variant="warning"', () => { const inputAst = parseJsx( 'export const TestComponent = () => Hello', ) const outputAst = parseJsx( 'export const TestComponent = () => Hello', ) expect(transformEmptyState(inputAst)).toEqual(printAst(outputAst)) }) it('replaces illustrationType="neutral" with variant="expert-advice"', () => { const inputAst = parseJsx( 'export const TestComponent = () => Hello', ) const outputAst = parseJsx( 'export const TestComponent = () => Hello', ) expect(transformEmptyState(inputAst)).toEqual(printAst(outputAst)) }) it('does not add variant if illustrationType was not defined', () => { const inputAst = parseJsx('export const TestComponent = () => Hello') const outputAst = parseJsx('export const TestComponent = () => Hello') expect(transformEmptyState(inputAst)).toEqual(printAst(outputAst)) }) })