import { parseJsx } from '../__tests__/utils'
import { printAst, transformSource, type TransformSourceArgs } from '../utils'
import { removePopoverVariant } from './removePopoverVariant'
const transformPopover = (sourceFile: TransformSourceArgs['sourceFile']): string => {
const tagsMap = new Map([
[
'Popover',
{
importModuleName: '@kaizen/components',
tagName: 'Popover',
originalName: 'Popover',
},
],
])
return transformSource({
sourceFile,
transformers: [removePopoverVariant(tagsMap)],
})
}
describe('removePopoverVariant()', () => {
it('removes variant', () => {
const inputAst = parseJsx(`
export const TestComponent = () =>
`)
const outputAst = parseJsx(`
export const TestComponent = () =>
`)
expect(transformPopover(inputAst)).toEqual(printAst(outputAst))
})
it('removes customIcon', () => {
const inputAst = parseJsx(`
export const TestComponent = () => } />
`)
const outputAst = parseJsx(`
export const TestComponent = () =>
`)
expect(transformPopover(inputAst)).toEqual(printAst(outputAst))
})
it('handles multiple attributes and remove only variant', () => {
const inputAst = parseJsx(`
export const TestComponent = () =>
`)
const outputAst = parseJsx(`
export const TestComponent = () =>
`)
expect(transformPopover(inputAst)).toBe(printAst(outputAst))
})
it('transforms multiple Popovers', () => {
const inputAst = parseJsx(`
export const TestComponent = () =>
`)
const outputAst = parseJsx(`
export const TestComponent = () =>
`)
expect(transformPopover(inputAst)).toBe(printAst(outputAst))
})
})