import { parseJsx } from '../__tests__/utils' import { printAst, transformSource, type TransformSourceArgs } from '../utils' import { transformConfirmationModalMoodsToVariant } from './transformConfirmationModalMoodsToVariant' const transformConfirmationModal = (sourceFile: TransformSourceArgs['sourceFile']): string => { const tagsMap = new Map([ [ 'ConfirmationModal', { importModuleName: '@kaizen/components', tagName: 'ConfirmationModal', originalName: 'ConfirmationModal', }, ], ]) return transformSource({ sourceFile, transformers: [transformConfirmationModalMoodsToVariant(tagsMap)], }) } describe('transformConfirmationModalMoodsToVariant()', () => { it('replaces mood="positive" with variant="success"', () => { const inputAst = parseJsx(` export const TestComponent = () => `) const outputAst = parseJsx(` export const TestComponent = () => `) expect(transformConfirmationModal(inputAst)).toEqual(printAst(outputAst)) }) it('replaces mood="negative" with variant="warning"', () => { const inputAst = parseJsx(` export const TestComponent = () => `) const outputAst = parseJsx(` export const TestComponent = () => `) expect(transformConfirmationModal(inputAst)).toEqual(printAst(outputAst)) }) it('handles multiple attributes and replace only variant', () => { const inputAst = parseJsx(` export const TestComponent = () => `) const outputAst = parseJsx(` export const TestComponent = () => `) expect(transformConfirmationModal(inputAst)).toBe(printAst(outputAst)) }) it('transforms multiple ConfirmationModals', () => { const inputAst = parseJsx(` export const TestComponent = () =>
`) const outputAst = parseJsx(` export const TestComponent = () =>
`) expect(transformConfirmationModal(inputAst)).toBe(printAst(outputAst)) }) it('transforms ConfirmationModal with arbitrary braces', () => { const inputAst = parseJsx(` export const TestComponent = () =>
`) const outputAst = parseJsx(` export const TestComponent = () =>
`) expect(transformConfirmationModal(inputAst)).toBe(printAst(outputAst)) }) it("won't add variant if variant already exists", () => { const inputAst = parseJsx(` export const TestComponent = () =>
`) const outputAst = parseJsx(` export const TestComponent = () =>
`) expect(transformConfirmationModal(inputAst)).toBe(printAst(outputAst)) }) it("won't modify variants usings variables", () => { const inputAst = parseJsx(` export const TestComponent = () =>
`) const outputAst = parseJsx(` export const TestComponent = () =>
`) expect(transformConfirmationModal(inputAst)).toBe(printAst(outputAst)) }) })