const ruleTester = require("../../ruletester");
import * as rule from "./component-groups-invalidObject-rename-props";
const renameMap = {
invalidObjectTitleText: "titleText",
invalidObjectBodyText: "bodyText",
};
const getErrors = (component: string) =>
Object.entries(renameMap).map(([oldName, newName]) => ({
message: `The ${oldName} prop for ${component} has been renamed to ${newName}.`,
type: "JSXOpeningElement",
}));
const components = ["InvalidObject", "MissingPage"];
const valid = components
.map((component) => [
{
code: `<${component} invalidObjectTitleText="" />`,
},
{
code: `<${component} invalidObjectBodyText="" />`,
},
{
code: `import { ${component} } from '@patternfly/react-component-groups'; <${component} someOtherProp />`,
},
])
.flat();
const invalid = components
.map((component) => [
{
code: `import { ${component} } from '@patternfly/react-component-groups';
<${component}
invalidObjectTitleText="Sample title text"
invalidObjectBodyText="Sample body text"
/>`,
output: `import { ${component} } from '@patternfly/react-component-groups';
<${component}
titleText="Sample title text"
bodyText="Sample body text"
/>`,
errors: getErrors(component),
},
{
code: `import ${component} from '@patternfly/react-component-groups/dist/cjs/${component}/index';
<${component}
invalidObjectTitleText="Sample title text"
invalidObjectBodyText="Sample body text"
/>`,
output: `import ${component} from '@patternfly/react-component-groups/dist/cjs/${component}/index';
<${component}
titleText="Sample title text"
bodyText="Sample body text"
/>`,
errors: getErrors(component),
},
{
code: `import ${component} from '@patternfly/react-component-groups/dist/esm/${component}/index';
<${component}
invalidObjectTitleText="Sample title text"
invalidObjectBodyText="Sample body text"
/>`,
output: `import ${component} from '@patternfly/react-component-groups/dist/esm/${component}/index';
<${component}
titleText="Sample title text"
bodyText="Sample body text"
/>`,
errors: getErrors(component),
},
{
code: `import ${component} from '@patternfly/react-component-groups/dist/dynamic/${component}';
<${component}
invalidObjectTitleText="Sample title text"
invalidObjectBodyText="Sample body text"
/>`,
output: `import ${component} from '@patternfly/react-component-groups/dist/dynamic/${component}';
<${component}
titleText="Sample title text"
bodyText="Sample body text"
/>`,
errors: getErrors(component),
},
{
code: `import InvObj from '@patternfly/react-component-groups/dist/dynamic/${component}';
`,
output: `import InvObj from '@patternfly/react-component-groups/dist/dynamic/${component}';
`,
errors: getErrors(component),
},
])
.flat();
ruleTester.run("component-groups-invalidObject-rename-props", rule, {
valid,
invalid,
});