const ruleTester = require("../../ruletester"); import * as rule from "./card-updated-clickable-markup"; const baseMessage = "The markup for clickable-only cards has been updated."; const propertyMessage = " Additionally, the `selectableActions.selectableActionId` and `selectableActions.name` props are no longer necessary to pass to CardHeader for clickable-only cards."; ruleTester.run("card-updated-clickable-markup", rule, { valid: [ { code: ``, }, { code: ``, }, { code: `import { Card } from '@patternfly/react-core'; `, }, { code: `import { Card } from '@patternfly/react-core'; `, }, { code: `import { CardHeader } from '@patternfly/react-core'; `, }, ], invalid: [ // No invalid properties { code: `import { Card, CardHeader } from '@patternfly/react-core'; `, output: `import { Card, CardHeader } from '@patternfly/react-core'; `, errors: [ { message: baseMessage, type: "JSXElement", }, ], }, // 1 valid property + 1 invalid property { code: `import { Card, CardHeader } from '@patternfly/react-core'; `, output: `import { Card, CardHeader } from '@patternfly/react-core'; `, errors: [ { message: baseMessage + propertyMessage, type: "JSXElement", }, ], }, // 2 invalid properties { code: `import { Card, CardHeader } from '@patternfly/react-core'; `, output: `import { Card, CardHeader } from '@patternfly/react-core'; `, errors: [ { message: baseMessage + propertyMessage, type: "JSXElement", }, ], }, // 1 valid property + 2 invalid properties { code: `import { Card, CardHeader } from '@patternfly/react-core'; `, output: `import { Card, CardHeader } from '@patternfly/react-core'; `, errors: [ { message: baseMessage + propertyMessage, type: "JSXElement", }, ], }, // Passed as a variable reference { code: `import { Card, CardHeader } from '@patternfly/react-core'; const obj = {name: 'Test', selectableActionId: 'Id'}; `, output: `import { Card, CardHeader } from '@patternfly/react-core'; const obj = {}; `, errors: [ { message: baseMessage + propertyMessage, type: "JSXElement", }, ], }, // Passed as a variable reference with 2 valid and 2 invalid properties { code: `import { Card, CardHeader } from '@patternfly/react-core'; const obj = {to: "#", name: 'Test', extra: "thing", selectableActionId: 'Id'}; `, output: `import { Card, CardHeader } from '@patternfly/react-core'; const obj = {to: "#", extra: "thing"}; `, errors: [ { message: baseMessage + propertyMessage, type: "JSXElement", }, ], }, // Aliased { code: `import { Card as CustomCard, CardHeader as CustomCardHeader } from '@patternfly/react-core'; `, output: `import { Card as CustomCard, CardHeader as CustomCardHeader } from '@patternfly/react-core'; `, errors: [ { message: baseMessage, type: "JSXElement", }, ], }, // Dist Imports { code: `import { Card, CardHeader } from '@patternfly/react-core/dist/esm/components/Card/index.js'; `, output: `import { Card, CardHeader } from '@patternfly/react-core/dist/esm/components/Card/index.js'; `, errors: [ { message: baseMessage, type: "JSXElement", }, ], }, { code: `import { Card, CardHeader } from '@patternfly/react-core/dist/js/components/Card/index.js'; `, output: `import { Card, CardHeader } from '@patternfly/react-core/dist/js/components/Card/index.js'; `, errors: [ { message: baseMessage, type: "JSXElement", }, ], }, { code: `import { Card, CardHeader } from '@patternfly/react-core/dist/dynamic/components/Card/index.js'; `, output: `import { Card, CardHeader } from '@patternfly/react-core/dist/dynamic/components/Card/index.js'; `, errors: [ { message: baseMessage, type: "JSXElement", }, ], }, ], });