-
-
Notifications
You must be signed in to change notification settings - Fork 4.5k
/
no-func-assign.js
101 lines (95 loc) · 3.13 KB
/
no-func-assign.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
/**
* @fileoverview Tests for no-func-assign.
* @author Ian Christian Myers
*/
"use strict";
//------------------------------------------------------------------------------
// Requirements
//------------------------------------------------------------------------------
const rule = require("../../../lib/rules/no-func-assign"),
{ RuleTester } = require("../../../lib/rule-tester");
//------------------------------------------------------------------------------
// Tests
//------------------------------------------------------------------------------
const ruleTester = new RuleTester();
ruleTester.run("no-func-assign", rule, {
valid: [
"function foo() { var foo = bar; }",
"function foo(foo) { foo = bar; }",
"function foo() { var foo; foo = bar; }",
{ code: "var foo = () => {}; foo = bar;", parserOptions: { ecmaVersion: 6 } },
"var foo = function() {}; foo = bar;",
"var foo = function() { foo = bar; };",
{ code: "import bar from 'bar'; function foo() { var foo = bar; }", parserOptions: { ecmaVersion: 6, sourceType: "module" } }
],
invalid: [
{
code: "function foo() {}; foo = bar;",
errors: [{
messageId: "isAFunction",
data: { name: "foo" },
type: "Identifier"
}]
},
{
code: "function foo() { foo = bar; }",
errors: [{
messageId: "isAFunction",
data: { name: "foo" },
type: "Identifier"
}]
},
{
code: "foo = bar; function foo() { };",
errors: [{
messageId: "isAFunction",
data: { name: "foo" },
type: "Identifier"
}]
},
{
code: "[foo] = bar; function foo() { };",
parserOptions: { ecmaVersion: 6 },
errors: [{
messageId: "isAFunction",
data: { name: "foo" },
type: "Identifier"
}]
},
{
code: "({x: foo = 0} = bar); function foo() { };",
parserOptions: { ecmaVersion: 6 },
errors: [{
messageId: "isAFunction",
data: { name: "foo" },
type: "Identifier"
}]
},
{
code: "function foo() { [foo] = bar; }",
parserOptions: { ecmaVersion: 6 },
errors: [{
messageId: "isAFunction",
data: { name: "foo" },
type: "Identifier"
}]
},
{
code: "(function() { ({x: foo = 0} = bar); function foo() { }; })();",
parserOptions: { ecmaVersion: 6 },
errors: [{
messageId: "isAFunction",
data: { name: "foo" },
type: "Identifier"
}]
},
{
code: "var a = function foo() { foo = 123; };",
errors: [{
messageId: "isAFunction",
data: { name: "foo" },
type: "Identifier"
}]
}
]
});