Skip to content

Commit a6c5b43

Browse files
committed
no-context: more tests & corresponding fix
1 parent 875485c commit a6c5b43

File tree

2 files changed

+67
-2
lines changed

2 files changed

+67
-2
lines changed

lib/rules/no-context.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,7 @@ module.exports = {
6767
return Boolean(
6868
node &&
6969
node.params &&
70-
node.params[1] &&
71-
node.params[1].name === 'context'
70+
node.params[1]
7271
);
7372
}
7473

tests/lib/rules/no-context.js

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,13 @@ ruleTester.run('no-context', rule, {
5454
'};'
5555
].join('\n'),
5656
parserOptions: parserOptions
57+
}, {
58+
code: [
59+
'const Hello = props => {',
60+
' return <div>Hello {props.name}</div>;',
61+
'};'
62+
].join('\n'),
63+
parserOptions: parserOptions
5764
}, {
5865
code: [
5966
'class Hello extends React.Component {',
@@ -67,6 +74,19 @@ ruleTester.run('no-context', rule, {
6774
].join('\n'),
6875
parser: 'babel-eslint',
6976
parserOptions: parserOptions
77+
}, {
78+
code: [
79+
'class Hello extends React.PureComponent {',
80+
' static propTypes = {',
81+
' name: React.PropTypes.string',
82+
' };',
83+
' render() {',
84+
' return <div>Hello {this.props.name}</div>;',
85+
' }',
86+
'};'
87+
].join('\n'),
88+
parser: 'babel-eslint',
89+
parserOptions: parserOptions
7090
}, {
7191
code: [
7292
'class Hello extends React.Component {',
@@ -163,6 +183,22 @@ ruleTester.run('no-context', rule, {
163183
errors: [{
164184
message: 'Using context is not allowed.'
165185
}]
186+
}, {
187+
code: [
188+
'class Hello extends React.PureComponent {',
189+
' static contextTypes = {',
190+
' name: React.PropTypes.string',
191+
' };',
192+
' render() {',
193+
' return <div>Hello</div>;',
194+
' }',
195+
'};'
196+
].join('\n'),
197+
parser: 'babel-eslint',
198+
parserOptions: parserOptions,
199+
errors: [{
200+
message: 'Using context is not allowed.'
201+
}]
166202
}, {
167203
code: [
168204
'class Hello extends React.Component {',
@@ -186,6 +222,36 @@ ruleTester.run('no-context', rule, {
186222
errors: [{
187223
message: 'Using context is not allowed.'
188224
}]
225+
}, {
226+
code: [
227+
'const Hello = (props, contextRenamed) => {',
228+
' return <div>Hello {contextRenamed.name}</div>;',
229+
'};'
230+
].join('\n'),
231+
parserOptions: parserOptions,
232+
errors: [{
233+
message: 'Using context is not allowed.'
234+
}]
235+
}, {
236+
code: [
237+
'const Hello = (props, {name}) => {',
238+
' return <div>Hello {name}</div>;',
239+
'};'
240+
].join('\n'),
241+
parserOptions: parserOptions,
242+
errors: [{
243+
message: 'Using context is not allowed.'
244+
}]
245+
}, {
246+
code: [
247+
'const Hello = function(props, context) {',
248+
' return <div>Hello {context.name}</div>;',
249+
'};'
250+
].join('\n'),
251+
parserOptions: parserOptions,
252+
errors: [{
253+
message: 'Using context is not allowed.'
254+
}]
189255
}, {
190256
code: [
191257
'const Hello = (props, context) => {',

0 commit comments

Comments
 (0)