import { parseJsx } from '../__tests__/utils' import { printAst, transformSource, type TransformSourceArgs } from '../utils' import { removeProps } from './removeProps' const testRemoveProps = ( sourceFile: TransformSourceArgs['sourceFile'], propsToRemove: string[] = ['topping'], ): string => { const tagsMap = new Map([ [ 'Pancakes', { importModuleName: '@kaizen/components', tagName: 'Pancakes', originalName: 'Pancakes', }, ], ]) return transformSource({ sourceFile, transformers: [removeProps(propsToRemove)(tagsMap)], }) } describe('removeProps()', () => { it('removes single specified prop', () => { const inputAst = parseJsx(` export const TestComponent = () => `) const outputAst = parseJsx(` export const TestComponent = () => `) expect(testRemoveProps(inputAst)).toEqual(printAst(outputAst)) }) it('removes multiple specified props', () => { const inputAst = parseJsx(` export const TestComponent = () => `) const outputAst = parseJsx(` export const TestComponent = () => `) expect(testRemoveProps(inputAst, ['topping', 'fruit'])).toEqual(printAst(outputAst)) }) it('handles multiple attributes and removes only specified props', () => { const inputAst = parseJsx(` export const TestComponent = () => `) const outputAst = parseJsx(` export const TestComponent = () => `) expect(testRemoveProps(inputAst)).toEqual(printAst(outputAst)) }) it('transforms multiple Pancakess', () => { const inputAst = parseJsx(` export const TestComponent = () =>
`) const outputAst = parseJsx(` export const TestComponent = () =>
`) expect(testRemoveProps(inputAst)).toEqual(printAst(outputAst)) }) })