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