diff --git a/tests/lib/rules/require-default-props.js b/tests/lib/rules/require-default-props.js
index 15d08bc244..409f4a6250 100644
--- a/tests/lib/rules/require-default-props.js
+++ b/tests/lib/rules/require-default-props.js
@@ -187,6 +187,58 @@ ruleTester.run('require-default-props', rule, {
].join('\n'),
options: [{forbidDefaultForRequired: true, ignoreFunctionalComponents: true}]
},
+ {
+ code: [
+ 'export function MyStatelessComponent({ foo, bar }) {',
+ ' return
{foo}{bar}
;',
+ '}',
+ '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 {foo}{bar}
;',
+ '}',
+ '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 {foo}{bar}
;',
+ '}',
+ '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 {foo}{bar}
;',
+ '}',
+ 'MyStatelessComponent.propTypes = {',
+ ' foo: PropTypes.string,',
+ ' bar: PropTypes.string.isRequired',
+ '};'
+ ].join('\n'),
+ options: [{ignoreFunctionalComponents: true}],
+ parser: parsers.TYPESCRIPT_ESLINT
+ },
//
// stateless components as function expressions
@@ -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 {foo}{bar}
;
+ };
+
+ 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 {foo}{bar}
;
+ };
+
+ MyComponent.propTypes = {
+ foo: PropTypes.string,
+ bar: PropTypes.string.isRequired
+ };
+ `,
+ options: [{ignoreFunctionalComponents: true}],
+ parser: parsers.TYPESCRIPT_ESLINT
+ },
//
// stateless components as arrow function expressions
@@ -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 {foo}{bar}
;
+ };
+
+ 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 {foo}{bar}
;
+ };
+
+ MyComponent.propTypes = {
+ foo: PropTypes.string,
+ bar: PropTypes.string.isRequired
+ };
+
+ export default MyComponent;
+ `,
+ options: [{ignoreFunctionalComponents: true}],
+ parser: parsers.TYPESCRIPT_ESLINT
+ },
//
// createReactClass components