import { TSESLint } from '@typescript-eslint/utils';
import { rule, RULE_NAME } from './component-props-naming';
const ruleTester = new TSESLint.RuleTester({
  parser: require.resolve('@typescript-eslint/parser'),
  parserOptions: {
    ecmaFeatures: {
      jsx: true,
    },
  },
});
ruleTester.run(RULE_NAME, rule, {
  valid: [
    {
      code: 'export const MyComponent= (props: MyComponentProps) => 
{props.message}
;',
    },
    {
      code: 'export const MyComponent = ({ message }: MyComponentProps) => {message}
;',
    },
  ],
  invalid: [
    {
      code: 'export const MyComponent = (props: OwnProps) => {props.message}
;',
      errors: [
        {
          messageId: 'invalidPropsTypeName',
        },
      ],
      output:
        'export const MyComponent = (props: MyComponentProps) => {props.message}
;',
    },
    {
      code: 'export const MyComponent = ({ message }: OwnProps) => {message}
;',
      errors: [
        {
          messageId: 'invalidPropsTypeName',
        },
      ],
      output:
        'export const MyComponent = ({ message }: MyComponentProps) => {message}
;',
    },
  ],
});