jest.autoMockOff();
import * as transformer from '../18.3.0-select-props';
const defineInlineTest = require('jscodeshift/dist/testUtils').defineInlineTest;
describe('Update Select props', () => {
defineInlineTest(
{ ...transformer, parser: 'tsx' },
{},
`
import Foo from '@atlaskit/select';
const App = () => {
return (
);
};
`,
`
import Foo from '@atlaskit/select';
const App = () => {
return ();
};
`,
'should remove all deleted props with aliased import name',
);
defineInlineTest(
{ ...transformer, parser: 'tsx' },
{},
`
import Select from '@foo/bar';
const App = () => {
return (
);
};
`,
`
import Select from '@foo/bar';
const App = () => {
return (
);
};
`,
'should not mutate if not from @atlaskit/select',
);
[
'Select',
'AsyncSelect',
'CheckboxSelect',
'CountrySelect',
'CreatableSelect',
'PopupSelect',
'RadioSelect',
].forEach((identifier) => {
const variant = identifier === `Select` ? 'Select' : `{ ${identifier} }`;
defineInlineTest(
{ ...transformer, parser: 'tsx' },
{},
`
import ${variant} from '@atlaskit/select';
const App = () => {
return (
<${identifier}
aria-errormessage={''}
aria-live={''}
ariaLiveMessages={''}
captureMenuOnScroll={true}
delimiter={''}
isRTL={true}
menuShouldBlockScroll={true}
screenReaderStatus={''}
/>
);
};
`,
`
import ${variant} from '@atlaskit/select';
const App = () => {
return (<${identifier} />);
};
`,
`should remove all deleted props for ${identifier} `,
);
defineInlineTest(
{ ...transformer, parser: 'tsx' },
{},
`
import ${variant} from '@atlaskit/select';
const App = () => {
return <${identifier} aria-invalid={true} aria-label={''} aria-labelledby={''} disabled={''} />;
};
`,
`
import ${variant} from '@atlaskit/select';
const App = () => {
return <${identifier} isInvalid={true} label={''} labelId={''} isDisabled={''} />;
};
`,
`should transform all replaced props for ${identifier}`,
);
defineInlineTest(
{ ...transformer, parser: 'tsx' },
{},
`
import ${variant} from '@atlaskit/select';
const App = () => {
return <${identifier} validationState='error' />;
};
`,
`
import ${variant} from '@atlaskit/select';
const App = () => {
return <${identifier} isInvalid />;
};
`,
`should transform validationState="error" to isInvalid for ${identifier}`,
);
defineInlineTest(
{ ...transformer, parser: 'tsx' },
{},
`
import ${variant} from '@atlaskit/select';
const App = () => {
return <${identifier} validationState = 'default' />;
};
`,
`
import ${variant} from '@atlaskit/select';
const App = () => {
return <${identifier} />;
};
`,
`should remove validationState when set to "default" for ${identifier}`,
);
defineInlineTest(
{ ...transformer, parser: 'tsx' },
{},
`
import ${variant} from '@atlaskit/select';
const App = () => {
return <${identifier} validationState = 'success' />;
};
`,
`
import ${variant} from '@atlaskit/select';
const App = () => {
return <${identifier} />;
};
`,
`should remove validationState when set to "success" for ${identifier}`,
);
// TODO: Enable once we have cleaned up validationState
// defineInlineTest(
// { ...transformer, parser: 'tsx' },
// {},
// `
// import Select from '@atlaskit/select';
// const App = () => {
// return (
// <${identifier}
// validationState={value}
// />
// )
// }
// `,
// `
// import Select from '@atlaskit/select';
// const App = () => {
// return (
// <${identifier}
// validationState={!value}
// />
// );
// }
// `,
// 'should transform validationState to isInvalid and negate when an expression is provided"',
// );
defineInlineTest(
{ ...transformer, parser: 'tsx' },
{},
`
const App = () => {
return (
<${identifier}
aria-errormessage={''}
aria-live={''}
ariaLiveMessages={''}
captureMenuOnScroll={true}
delimiter={''}
isRTL={true}
menuShouldBlockScroll={true}
screenReaderStatus={''}
/>
);
};
`,
`
const App = () => {
return (
<${identifier}
aria-errormessage={''}
aria-live={''}
ariaLiveMessages={''}
captureMenuOnScroll={true}
delimiter={''}
isRTL={true}
menuShouldBlockScroll={true}
screenReaderStatus={''}
/>
);
};
`,
'should not mutate JSX if import is missing',
);
defineInlineTest(
{ ...transformer, parser: 'tsx' },
{},
`
import ${identifier === 'Select' ? `Ak${identifier}` : `{${identifier} as Ak${identifier}}`} from '@atlaskit/select';
const App = () => {
return (
);
};
`,
`
import ${identifier === 'Select' ? `Ak${identifier}` : `{${identifier} as Ak${identifier}}`} from '@atlaskit/select';
const App = () => {
return ();
};
`,
`should handle named imports for ${identifier} `,
);
});
});