Skip to content

Commit

Permalink
test: add export tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Redmond Tran committed Jan 2, 2020
1 parent e3c7338 commit 4581d8c
Showing 1 changed file with 124 additions and 0 deletions.
124 changes: 124 additions & 0 deletions tests/lib/rules/require-default-props.js
Expand Up @@ -187,6 +187,58 @@ ruleTester.run('require-default-props', rule, {
].join('\n'),
options: [{forbidDefaultForRequired: true, ignoreFunctionalComponents: true}]
},
{
code: [
'export function MyStatelessComponent({ foo, bar }) {',
' return <div>{foo}{bar}</div>;',
'}',
'MyStatelessComponent.propTypes = {',
' foo: PropTypes.string,',
' bar: PropTypes.string.isRequired',
'};'
].join('\n'),
options: [{ignoreFunctionalComponents: true}],
parser: parsers.BABEL_ESLINT
},
{
code: [
'export function MyStatelessComponent({ foo, bar }) {',
' return <div>{foo}{bar}</div>;',
'}',
'MyStatelessComponent.propTypes = {',
' foo: PropTypes.string,',
' bar: PropTypes.string.isRequired',
'};'
].join('\n'),
options: [{ignoreFunctionalComponents: true}],
parser: parsers.TYPESCRIPT_ESLINT
},
{
code: [
'export default function MyStatelessComponent({ foo, bar }) {',
' return <div>{foo}{bar}</div>;',
'}',
'MyStatelessComponent.propTypes = {',
' foo: PropTypes.string,',
' bar: PropTypes.string.isRequired',
'};'
].join('\n'),
options: [{ignoreFunctionalComponents: true}],
parser: parsers.BABEL_ESLINT
},
{
code: [
'export default function MyStatelessComponent({ foo, bar }) {',
' return <div>{foo}{bar}</div>;',
'}',
'MyStatelessComponent.propTypes = {',
' foo: PropTypes.string,',
' bar: PropTypes.string.isRequired',
'};'
].join('\n'),
options: [{ignoreFunctionalComponents: true}],
parser: parsers.TYPESCRIPT_ESLINT
},

//
// stateless components as function expressions
Expand All @@ -208,6 +260,40 @@ ruleTester.run('require-default-props', rule, {
`,
options: [{ignoreFunctionalComponents: true}]
},
{
code: `
import PropTypes from 'prop-types';
import React from 'react';
export const MyComponent = function({ foo, bar }) {
return <div>{foo}{bar}</div>;
};
MyComponent.propTypes = {
foo: PropTypes.string,
bar: PropTypes.string.isRequired
};
`,
options: [{ignoreFunctionalComponents: true}],
parser: parsers.BABEL_ESLINT
},
{
code: `
import PropTypes from 'prop-types';
import React from 'react';
export const MyComponent = function({ foo, bar }) {
return <div>{foo}{bar}</div>;
};
MyComponent.propTypes = {
foo: PropTypes.string,
bar: PropTypes.string.isRequired
};
`,
options: [{ignoreFunctionalComponents: true}],
parser: parsers.TYPESCRIPT_ESLINT
},

//
// stateless components as arrow function expressions
Expand All @@ -229,6 +315,44 @@ ruleTester.run('require-default-props', rule, {
`,
options: [{ignoreFunctionalComponents: true}]
},
{
code: `
import PropTypes from 'prop-types';
import React from 'react';
export const MyComponent = ({ foo, bar }) => {
return <div>{foo}{bar}</div>;
};
MyComponent.propTypes = {
foo: PropTypes.string,
bar: PropTypes.string.isRequired
};
export default MyComponent;
`,
options: [{ignoreFunctionalComponents: true}],
parser: parsers.BABEL_ESLINT
},
{
code: `
import PropTypes from 'prop-types';
import React from 'react';
export const MyComponent = ({ foo, bar }) => {
return <div>{foo}{bar}</div>;
};
MyComponent.propTypes = {
foo: PropTypes.string,
bar: PropTypes.string.isRequired
};
export default MyComponent;
`,
options: [{ignoreFunctionalComponents: true}],
parser: parsers.TYPESCRIPT_ESLINT
},

//
// createReactClass components
Expand Down

0 comments on commit 4581d8c

Please sign in to comment.