eslint-plugin-smarthr 0.0.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,201 @@
1
+ const rule = require('../rules/prohibit-import')
2
+ const RuleTester = require('eslint').RuleTester
3
+
4
+ const ruleTester = new RuleTester({
5
+ parserOptions: {
6
+ sourceType: 'module',
7
+ ecmaVersion: 2015
8
+ },
9
+ })
10
+
11
+ ruleTester.run('prohibit-import', rule, {
12
+ valid: [
13
+ {
14
+ code: `import _ from 'lodash-es'`,
15
+ filename: 'hoge.js',
16
+ options: [
17
+ {
18
+ '^.+$': {
19
+ 'lodash': {
20
+ imported: true,
21
+ },
22
+ },
23
+ }
24
+ ]
25
+ },
26
+ {
27
+ code: `import { isEqual } from 'lodash-es'`,
28
+ filename: 'hoge.js',
29
+ options: [
30
+ {
31
+ '^.+$': {
32
+ 'lodash': {
33
+ imported: ['isEqual']
34
+ },
35
+ },
36
+ }
37
+ ]
38
+ },
39
+ {
40
+ code: `import { isEqaul } from 'lodash'`,
41
+ filename: 'hoge.js',
42
+ options: [
43
+ {
44
+ '^.+$': {
45
+ 'lodash': {
46
+ imported: ['isEqual']
47
+ },
48
+ },
49
+ }
50
+ ]
51
+ },
52
+ {
53
+ code: `import _ from 'lodash'`,
54
+ filename: 'hoge.js',
55
+ options: [
56
+ {
57
+ '^.+$': {
58
+ 'lodash': {
59
+ imported: ['isEqual']
60
+ },
61
+ },
62
+ }
63
+ ]
64
+ },
65
+ {
66
+ code: `import _ from 'lodash'`,
67
+ filename: 'hoge.js',
68
+ options: [
69
+ {
70
+ '^fuga.js$': {
71
+ 'lodash': {
72
+ imported: true
73
+ },
74
+ },
75
+ }
76
+ ],
77
+ },
78
+ {
79
+ code: `import { isEqual } from './module/validator'`,
80
+ filename: 'page/hoge.js',
81
+ options: [
82
+ {
83
+ '^.+$': {
84
+ './module/validator': {
85
+ imported: ['isEqual'],
86
+ },
87
+ },
88
+ }
89
+ ],
90
+ },
91
+ ],
92
+ invalid: [
93
+ {
94
+ code: `import _ from 'lodash'`,
95
+ filename: 'hoge.js',
96
+ options: [
97
+ {
98
+ '^.+$': {
99
+ 'lodash': {
100
+ imported: true
101
+ },
102
+ },
103
+ }
104
+ ],
105
+ errors: [{ message: 'lodash は利用しないでください' }]
106
+ },
107
+ {
108
+ code: `import { isEqual } from 'lodash'`,
109
+ filename: 'hoge.js',
110
+ options: [
111
+ {
112
+ '^.+$': {
113
+ 'lodash': {
114
+ imported: true
115
+ },
116
+ },
117
+ }
118
+ ],
119
+ errors: [{ message: 'lodash は利用しないでください' }]
120
+ },
121
+ {
122
+ code: `import { isEqual } from 'lodash'`,
123
+ filename: 'hoge.js',
124
+ options: [
125
+ {
126
+ '^.+$': {
127
+ 'lodash': {
128
+ imported: ['isEqual']
129
+ },
130
+ },
131
+ }
132
+ ],
133
+ errors: [{message: 'lodash/isEqual は利用しないでください'}]
134
+ },
135
+ {
136
+ code: `import { isEqual } from 'lodash'`,
137
+ filename: 'hoge.js',
138
+ options: [
139
+ {
140
+ '^.+$': {
141
+ 'lodash': {
142
+ imported: ['isEqual'],
143
+ "reportMessage": "must not use {{module}}/{{export}}"
144
+ },
145
+ },
146
+ }
147
+ ],
148
+ errors: [{message: 'must not use lodash/isEqual'}]
149
+ },
150
+ {
151
+ code: `import { isEqual } from 'lodash'`,
152
+ filename: 'hoge.js',
153
+ options: [
154
+ {
155
+ '^.+$': {
156
+ 'example': {
157
+ imported: true,
158
+ },
159
+ 'lodash': {
160
+ imported: ['isEqual'],
161
+ reportMessage: "must not use {{module}}/{{export}}",
162
+ },
163
+ },
164
+ }
165
+ ],
166
+ errors: [{message: 'must not use lodash/isEqual'}]
167
+ },
168
+ {
169
+ code: `import { isEqual } from 'lodash'`,
170
+ filename: 'hoge.js',
171
+ options: [
172
+ {
173
+ '^hoge.js$': {
174
+ 'example': {
175
+ imported: true,
176
+ },
177
+ 'lodash': {
178
+ imported: ['isEqual'],
179
+ reportMessage: "must not use {{module}}/{{export}}",
180
+ },
181
+ },
182
+ }
183
+ ],
184
+ errors: [{message: 'must not use lodash/isEqual'}]
185
+ },
186
+ {
187
+ code: `import { isEqual } from './module/validator'`,
188
+ filename: 'page/hoge.js',
189
+ options: [
190
+ {
191
+ '^.+$': {
192
+ './page/module/validator': {
193
+ imported: ['isEqual'],
194
+ },
195
+ },
196
+ }
197
+ ],
198
+ errors: [{ message: './module/validator/isEqual は利用しないでください' }]
199
+ },
200
+ ]
201
+ })
@@ -0,0 +1,184 @@
1
+ const rule = require('../rules/require-import')
2
+ const RuleTester = require('eslint').RuleTester
3
+
4
+ const ruleTester = new RuleTester({
5
+ parserOptions: {
6
+ sourceType: 'module',
7
+ ecmaVersion: 2015
8
+ },
9
+ })
10
+
11
+ ruleTester.run('require-import', rule, {
12
+ valid: [
13
+ {
14
+ code: `import _ from 'lodash'`,
15
+ filename: 'hoge.js',
16
+ options: [
17
+ {
18
+ '^.+$': {
19
+ 'lodash': {
20
+ imported: true,
21
+ },
22
+ },
23
+ }
24
+ ],
25
+ },
26
+ {
27
+ code: ``,
28
+ filename: 'hoge.js',
29
+ options: [
30
+ {
31
+ '^fuga.js$': {
32
+ 'lodash': {
33
+ imported: true,
34
+ },
35
+ },
36
+ }
37
+ ],
38
+ },
39
+ {
40
+ code: `import _ from 'lodash'`,
41
+ filename: 'hoge.js',
42
+ options: [
43
+ {
44
+ '^hoge.js$': {
45
+ 'lodash': {
46
+ imported: true,
47
+ reportMessage: '{{module}} を絶対使ってください'
48
+ },
49
+ },
50
+ }
51
+ ],
52
+ },
53
+ {
54
+ code: `import { isEqual } from 'lodash'`,
55
+ filename: 'hoge.js',
56
+ options: [
57
+ {
58
+ '^hoge.js$': {
59
+ 'lodash': {
60
+ imported: ['isEqual'],
61
+ reportMessage: '{{module}}/{{export}} を絶対使ってください'
62
+ },
63
+ },
64
+ }
65
+ ],
66
+ errors: [{ message: 'lodash/isEqual を絶対使ってください' }],
67
+ },
68
+ {
69
+ code: `import { chunk } from 'lodash'`,
70
+ filename: 'hoge.js',
71
+ options: [
72
+ {
73
+ '^hoge.js$': {
74
+ 'lodash': {
75
+ imported: true,
76
+ },
77
+ },
78
+ }
79
+ ],
80
+ },
81
+ {
82
+ code: `import { isEqual } from './module/validator'`,
83
+ filename: 'page/hoge.js',
84
+ options: [
85
+ {
86
+ '^.+$': {
87
+ './page/module/validator': {
88
+ imported: ['isEqual'],
89
+ },
90
+ },
91
+ }
92
+ ],
93
+ },
94
+ ],
95
+ invalid: [
96
+ {
97
+ code: ``,
98
+ filename: 'hoge.js',
99
+ options: [
100
+ {
101
+ '^.+$': {
102
+ 'lodash': {
103
+ imported: true,
104
+ },
105
+ },
106
+ }
107
+ ],
108
+ errors: [{ message: 'lodash をimportしてください' }],
109
+ },
110
+ {
111
+ code: ``,
112
+ filename: 'hoge.js',
113
+ options: [
114
+ {
115
+ '^hoge.js$': {
116
+ 'lodash': {
117
+ imported: true,
118
+ },
119
+ },
120
+ }
121
+ ],
122
+ errors: [{ message: 'lodash をimportしてください' }],
123
+ },
124
+ {
125
+ code: ``,
126
+ filename: 'hoge.js',
127
+ options: [
128
+ {
129
+ '^hoge.js$': {
130
+ 'lodash': {
131
+ imported: true,
132
+ reportMessage: '{{module}} を絶対使ってください'
133
+ },
134
+ },
135
+ }
136
+ ],
137
+ errors: [{ message: 'lodash を絶対使ってください' }],
138
+ },
139
+ {
140
+ code: ``,
141
+ filename: 'hoge.js',
142
+ options: [
143
+ {
144
+ '^hoge.js$': {
145
+ 'lodash': {
146
+ imported: ['isEqual'],
147
+ reportMessage: '{{module}}/{{export}} を絶対使ってください'
148
+ },
149
+ },
150
+ }
151
+ ],
152
+ errors: [{ message: 'lodash/isEqual を絶対使ってください' }],
153
+ },
154
+ {
155
+ code: `import { chunk } from 'lodash'`,
156
+ filename: 'hoge.js',
157
+ options: [
158
+ {
159
+ '^hoge.js$': {
160
+ 'lodash': {
161
+ imported: ['isEqual'],
162
+ reportMessage: '{{module}}/{{export}} を絶対使ってください'
163
+ },
164
+ },
165
+ }
166
+ ],
167
+ errors: [{ message: 'lodash/isEqual を絶対使ってください' }],
168
+ },
169
+ {
170
+ code: `import { isEqual } from './module/validator'`,
171
+ filename: 'page/hoge.js',
172
+ options: [
173
+ {
174
+ '^.+$': {
175
+ './module/validator': {
176
+ imported: ['isEqual'],
177
+ },
178
+ },
179
+ }
180
+ ],
181
+ errors: [{ message: /module\/validator\/isEqual をimportしてください$/ }],
182
+ },
183
+ ]
184
+ })