]>
git.proxmox.com Git - pve-eslint.git/blob - eslint/tests/lib/rules/no-restricted-properties.js
2 * @fileoverview Tests for no-restricted-properties rule.
3 * @author Will Klein & Eli White
8 //------------------------------------------------------------------------------
10 //------------------------------------------------------------------------------
12 const rule
= require("../../../lib/rules/no-restricted-properties"),
13 { RuleTester
} = require("../../../lib/rule-tester");
15 //------------------------------------------------------------------------------
17 //------------------------------------------------------------------------------
19 const ruleTester
= new RuleTester();
21 ruleTester
.run("no-restricted-properties", rule
, {
24 code
: "someObject.someProperty",
27 property
: "disallowedProperty"
30 code
: "anotherObject.disallowedProperty",
33 property
: "disallowedProperty"
36 code
: "someObject.someProperty()",
39 property
: "disallowedProperty"
42 code
: "anotherObject.disallowedProperty()",
45 property
: "disallowedProperty"
48 code
: "anotherObject.disallowedProperty()",
51 property
: "disallowedProperty",
52 message
: "Please use someObject.allowedProperty instead."
55 code
: "anotherObject['disallowedProperty']()",
58 property
: "disallowedProperty"
67 code
: "toString.toString",
99 code
: "foo[/(?<zero>0)/]",
103 parserOptions
: { ecmaVersion
: 2018 }
105 code
: "let bar = foo;",
106 options
: [{ object
: "foo", property
: "bar" }],
107 parserOptions
: { ecmaVersion
: 6 }
109 code
: "let {baz: bar} = foo;",
110 options
: [{ object
: "foo", property
: "bar" }],
111 parserOptions
: { ecmaVersion
: 6 }
113 code
: "let {unrelated} = foo;",
114 options
: [{ object
: "foo", property
: "bar" }],
115 parserOptions
: { ecmaVersion
: 6 }
117 code
: "let {baz: {bar: qux}} = foo;",
118 options
: [{ object
: "foo", property
: "bar" }],
119 parserOptions
: { ecmaVersion
: 6 }
121 code
: "let {bar} = foo.baz;",
122 options
: [{ object
: "foo", property
: "bar" }],
123 parserOptions
: { ecmaVersion
: 6 }
125 code
: "let {baz: bar} = foo;",
126 options
: [{ property
: "bar" }],
127 parserOptions
: { ecmaVersion
: 6 }
129 code
: "let baz; ({baz: bar} = foo)",
130 options
: [{ object
: "foo", property
: "bar" }],
131 parserOptions
: { ecmaVersion
: 6 }
134 options
: [{ object
: "foo", property
: "bar" }],
135 parserOptions
: { ecmaVersion
: 6 }
137 code
: "let bar; ([bar = 5] = foo);",
138 options
: [{ object
: "foo", property
: "1" }],
139 parserOptions
: { ecmaVersion
: 6 }
141 code
: "function qux({baz: bar} = foo) {}",
142 options
: [{ object
: "foo", property
: "bar" }],
143 parserOptions
: { ecmaVersion
: 6 }
145 code
: "let [bar, baz] = foo;",
146 options
: [{ object
: "foo", property
: "1" }],
147 parserOptions
: { ecmaVersion
: 6 }
149 code
: "let [, bar] = foo;",
150 options
: [{ object
: "foo", property
: "0" }],
151 parserOptions
: { ecmaVersion
: 6 }
153 code
: "let [, bar = 5] = foo;",
154 options
: [{ object
: "foo", property
: "1" }],
155 parserOptions
: { ecmaVersion
: 6 }
157 code
: "let bar; ([bar = 5] = foo);",
158 options
: [{ object
: "foo", property
: "0" }],
159 parserOptions
: { ecmaVersion
: 6 }
161 code
: "function qux([bar] = foo) {}",
162 options
: [{ object
: "foo", property
: "0" }],
163 parserOptions
: { ecmaVersion
: 6 }
165 code
: "function qux([, bar] = foo) {}",
166 options
: [{ object
: "foo", property
: "0" }],
167 parserOptions
: { ecmaVersion
: 6 }
169 code
: "function qux([, bar] = foo) {}",
170 options
: [{ object
: "foo", property
: "1" }],
171 parserOptions
: { ecmaVersion
: 6 }
173 code
: "class C { #foo; foo() { this.#foo; } }",
174 options
: [{ property
: "#foo" }],
175 parserOptions
: { ecmaVersion
: 2022 }
181 code
: "someObject.disallowedProperty",
183 object
: "someObject",
184 property
: "disallowedProperty"
187 messageId
: "restrictedObjectProperty",
189 objectName
: "someObject",
190 propertyName
: "disallowedProperty",
193 type
: "MemberExpression"
196 code
: "someObject.disallowedProperty",
198 object
: "someObject",
199 property
: "disallowedProperty",
200 message
: "Please use someObject.allowedProperty instead."
203 messageId
: "restrictedObjectProperty",
205 objectName
: "someObject",
206 propertyName
: "disallowedProperty",
207 message
: " Please use someObject.allowedProperty instead."
209 type
: "MemberExpression"
212 code
: "someObject.disallowedProperty; anotherObject.anotherDisallowedProperty()",
214 object
: "someObject",
215 property
: "disallowedProperty"
217 object
: "anotherObject",
218 property
: "anotherDisallowedProperty"
221 messageId
: "restrictedObjectProperty",
223 objectName
: "someObject",
224 propertyName
: "disallowedProperty",
227 type
: "MemberExpression"
229 messageId
: "restrictedObjectProperty",
231 objectName
: "anotherObject",
232 propertyName
: "anotherDisallowedProperty",
235 type
: "MemberExpression"
238 code
: "foo.__proto__",
240 property
: "__proto__",
241 message
: "Please use Object.getPrototypeOf instead."
244 messageId
: "restrictedProperty",
247 propertyName
: "__proto__",
248 message
: " Please use Object.getPrototypeOf instead."
250 type
: "MemberExpression"
253 code
: "foo['__proto__']",
255 property
: "__proto__",
256 message
: "Please use Object.getPrototypeOf instead."
259 messageId
: "restrictedProperty",
262 propertyName
: "__proto__",
263 message
: " Please use Object.getPrototypeOf instead."
265 type
: "MemberExpression"
268 code
: "foo.bar.baz;",
269 options
: [{ object
: "foo" }],
271 messageId
: "restrictedObjectProperty",
277 type
: "MemberExpression"
281 options
: [{ object
: "foo" }],
283 messageId
: "restrictedObjectProperty",
289 type
: "MemberExpression"
292 code
: "foo.bar.baz();",
293 options
: [{ object
: "foo" }],
295 messageId
: "restrictedObjectProperty",
301 type
: "MemberExpression"
304 code
: "foo.bar.baz;",
305 options
: [{ property
: "bar" }],
307 messageId
: "restrictedProperty",
313 type
: "MemberExpression"
317 options
: [{ property
: "bar" }],
319 messageId
: "restrictedProperty",
325 type
: "MemberExpression"
328 code
: "foo.bar.baz();",
329 options
: [{ property
: "bar" }],
331 messageId
: "restrictedProperty",
337 type
: "MemberExpression"
340 code
: "foo[/(?<zero>0)/]",
341 options
: [{ property
: "/(?<zero>0)/" }],
342 parserOptions
: { ecmaVersion
: 2018 },
344 messageId
: "restrictedProperty",
347 propertyName
: "/(?<zero>0)/",
350 type
: "MemberExpression"
353 code
: "require.call({}, 'foo')",
356 message
: "Please call require() directly."
359 messageId
: "restrictedObjectProperty",
361 objectName
: "require",
362 propertyName
: "call",
363 message
: " Please call require() directly."
365 type
: "MemberExpression"
368 code
: "require['resolve']",
373 messageId
: "restrictedObjectProperty",
375 objectName
: "require",
376 propertyName
: "resolve",
379 type
: "MemberExpression"
382 code
: "let {bar} = foo;",
383 options
: [{ object
: "foo", property
: "bar" }],
384 parserOptions
: { ecmaVersion
: 6 },
386 messageId
: "restrictedObjectProperty",
392 type
: "ObjectPattern"
395 code
: "let {bar: baz} = foo;",
396 options
: [{ object
: "foo", property
: "bar" }],
397 parserOptions
: { ecmaVersion
: 6 },
399 messageId
: "restrictedObjectProperty",
405 type
: "ObjectPattern"
408 code
: "let {'bar': baz} = foo;",
409 options
: [{ object
: "foo", property
: "bar" }],
410 parserOptions
: { ecmaVersion
: 6 },
412 messageId
: "restrictedObjectProperty",
418 type
: "ObjectPattern"
421 code
: "let {bar: {baz: qux}} = foo;",
422 options
: [{ object
: "foo", property
: "bar" }],
423 parserOptions
: { ecmaVersion
: 6 },
425 messageId
: "restrictedObjectProperty",
431 type
: "ObjectPattern"
434 code
: "let {bar} = foo;",
435 options
: [{ object
: "foo" }],
436 parserOptions
: { ecmaVersion
: 6 },
438 messageId
: "restrictedObjectProperty",
444 type
: "ObjectPattern"
447 code
: "let {bar: baz} = foo;",
448 options
: [{ object
: "foo" }],
449 parserOptions
: { ecmaVersion
: 6 },
451 messageId
: "restrictedObjectProperty",
457 type
: "ObjectPattern"
460 code
: "let {bar} = foo;",
461 options
: [{ property
: "bar" }],
462 parserOptions
: { ecmaVersion
: 6 },
464 messageId
: "restrictedProperty",
470 type
: "ObjectPattern"
473 code
: "let bar; ({bar} = foo);",
474 options
: [{ object
: "foo", property
: "bar" }],
475 parserOptions
: { ecmaVersion
: 6 },
477 messageId
: "restrictedObjectProperty",
483 type
: "ObjectPattern"
486 code
: "let bar; ({bar: baz = 1} = foo);",
487 options
: [{ object
: "foo", property
: "bar" }],
488 parserOptions
: { ecmaVersion
: 6 },
490 messageId
: "restrictedObjectProperty",
496 type
: "ObjectPattern"
499 code
: "function qux({bar} = foo) {}",
500 options
: [{ object
: "foo", property
: "bar" }],
501 parserOptions
: { ecmaVersion
: 6 },
503 messageId
: "restrictedObjectProperty",
509 type
: "ObjectPattern"
512 code
: "function qux({bar: baz} = foo) {}",
513 options
: [{ object
: "foo", property
: "bar" }],
514 parserOptions
: { ecmaVersion
: 6 },
516 messageId
: "restrictedObjectProperty",
522 type
: "ObjectPattern"
525 code
: "var {['foo']: qux, bar} = baz",
526 options
: [{ object
: "baz", property
: "foo" }],
527 parserOptions
: { ecmaVersion
: 6 },
529 messageId
: "restrictedObjectProperty",
535 type
: "ObjectPattern"
539 options
: [{ property
: "#foo" }],
541 messageId
: "restrictedProperty",
544 propertyName
: "#foo",
547 type
: "MemberExpression"