]>
git.proxmox.com Git - pve-eslint.git/blob - eslint/tests/lib/rules/no-obj-calls.js
2 * @fileoverview Tests for no-obj-calls rule.
3 * @author James Allardice
8 //------------------------------------------------------------------------------
10 //------------------------------------------------------------------------------
12 const rule
= require("../../../lib/rules/no-obj-calls"),
13 { RuleTester
} = require("../../../lib/rule-tester");
15 //------------------------------------------------------------------------------
17 //------------------------------------------------------------------------------
19 const ruleTester
= new RuleTester();
21 ruleTester
.run("no-obj-calls", rule
, {
24 "var x = Math.random();",
26 "var x = foo.Math();",
27 "var x = new foo.Math();",
28 "var x = new Math.foo;",
29 "var x = new Math.foo();",
33 code
: "Reflect.get(foo, 'x')",
37 code
: "new Reflect.foo(a, b)",
41 code
: "Atomics.load(foo, 0)",
45 code
: "new Atomics.foo()",
49 { code
: "globalThis.Math();", env
: { es6
: true } },
50 { code
: "var x = globalThis.Math();", env
: { es6
: true } },
51 { code
: "f(globalThis.Math());", env
: { es6
: true } },
52 { code
: "globalThis.Math().foo;", env
: { es6
: true } },
53 { code
: "var x = globalThis.JSON();", env
: { es6
: true } },
54 { code
: "x = globalThis.JSON(str);", env
: { es6
: true } },
55 { code
: "globalThis.Math( globalThis.JSON() );", env
: { es6
: true } },
56 { code
: "var x = globalThis.Reflect();", env
: { es6
: true } },
57 { code
: "var x = globalThis.Reflect();", env
: { es2017
: true } },
58 { code
: "/*globals Reflect: true*/ globalThis.Reflect();", env
: { es2017
: true } },
59 { code
: "var x = globalThis.Atomics();", env
: { es2017
: true } },
60 { code
: "var x = globalThis.Atomics();", globals
: { Atomics
: false }, env
: { es2017
: true } },
62 // non-existing variables
63 "/*globals Math: off*/ Math();",
64 "/*globals Math: off*/ new Math();",
67 globals
: { JSON
: "off" }
71 globals
: { JSON
: "off" }
84 "var Math; new Math();",
86 code
: "let JSON; JSON();",
87 parserOptions
: { ecmaVersion
: 2015 }
90 code
: "let JSON; new JSON();",
91 parserOptions
: { ecmaVersion
: 2015 }
94 code
: "if (foo) { const Reflect = 1; Reflect(); }",
95 parserOptions
: { ecmaVersion
: 2015 },
99 code
: "if (foo) { const Reflect = 1; new Reflect(); }",
100 parserOptions
: { ecmaVersion
: 2015 },
103 "function foo(Math) { Math(); }",
104 "function foo(JSON) { new JSON(); }",
106 code
: "function foo(Atomics) { Atomics(); }",
107 env
: { es2017
: true }
110 code
: "function foo() { if (bar) { let Atomics; if (baz) { new Atomics(); } } }",
111 parserOptions
: { ecmaVersion
: 2015 },
112 env
: { es2017
: true }
114 "function foo() { var JSON; JSON(); }",
116 code
: "function foo() { var Atomics = bar(); var baz = Atomics(5); }",
117 globals
: { Atomics
: false }
120 code
: "var construct = typeof Reflect !== \"undefined\" ? Reflect.construct : undefined; construct();",
121 globals
: { Reflect
: false }
127 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Math" }, type
: "CallExpression" }]
130 code
: "var x = Math();",
131 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Math" }, type
: "CallExpression" }]
135 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Math" }, type
: "CallExpression", column
: 3, endColumn
: 9 }]
139 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Math" }, type
: "CallExpression", column
: 1, endColumn
: 7 }]
143 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Math" }, type
: "NewExpression" }]
147 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Math" }, type
: "NewExpression" }]
150 code
: "new Math(foo);",
151 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Math" }, type
: "NewExpression" }]
154 code
: "new Math().foo;",
155 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Math" }, type
: "NewExpression" }]
158 code
: "(new Math).foo();",
159 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Math" }, type
: "NewExpression" }]
162 code
: "var x = JSON();",
163 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "JSON" }, type
: "CallExpression" }]
166 code
: "x = JSON(str);",
167 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "JSON" }, type
: "CallExpression" }]
170 code
: "var x = new JSON();",
171 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "JSON" }, type
: "NewExpression" }]
174 code
: "Math( JSON() );",
176 { messageId
: "unexpectedCall", data
: { name
: "Math" }, type
: "CallExpression", column
: 1, endColumn
: 15 },
177 { messageId
: "unexpectedCall", data
: { name
: "JSON" }, type
: "CallExpression", column
: 7, endColumn
: 13 }
181 code
: "var x = Reflect();",
183 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Reflect" }, type
: "CallExpression" }]
186 code
: "var x = new Reflect();",
188 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Reflect" }, type
: "NewExpression" }]
191 code
: "var x = Reflect();",
192 env
: { es2017
: true },
193 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Reflect" }, type
: "CallExpression" }]
196 code
: "/*globals Reflect: true*/ Reflect();",
197 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Reflect" }, type
: "CallExpression" }]
200 code
: "/*globals Reflect: true*/ new Reflect();",
201 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Reflect" }, type
: "NewExpression" }]
204 code
: "var x = Atomics();",
205 env
: { es2017
: true },
206 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Atomics" }, type
: "CallExpression" }]
209 code
: "var x = new Atomics();",
210 env
: { es2017
: true },
211 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Atomics" }, type
: "NewExpression" }]
214 code
: "var x = Atomics();",
215 env
: { es2020
: true },
216 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Atomics" }, type
: "CallExpression" }]
219 code
: "var x = Atomics();",
220 globals
: { Atomics
: false },
221 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Atomics" }, type
: "CallExpression" }]
224 code
: "var x = new Atomics();",
225 globals
: { Atomics
: "writable" },
226 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Atomics" }, type
: "NewExpression" }]
229 code
: "var x = globalThis.Math();",
230 env
: { es2020
: true },
231 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Math" }, type
: "CallExpression" }]
234 code
: "var x = new globalThis.Math();",
235 env
: { es2020
: true },
236 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Math" }, type
: "NewExpression" }]
239 code
: "f(globalThis.Math());",
240 env
: { es2020
: true },
241 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Math" }, type
: "CallExpression", column
: 3, endColumn
: 20 }]
244 code
: "globalThis.Math().foo;",
245 env
: { es2020
: true },
246 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Math" }, type
: "CallExpression", column
: 1, endColumn
: 18 }]
249 code
: "new globalThis.Math().foo;",
250 env
: { es2020
: true },
251 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Math" }, type
: "NewExpression", column
: 1, endColumn
: 22 }]
254 code
: "var x = globalThis.JSON();",
255 env
: { es2020
: true },
256 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "JSON" }, type
: "CallExpression" }]
259 code
: "x = globalThis.JSON(str);",
260 env
: { es2020
: true },
261 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "JSON" }, type
: "CallExpression" }]
264 code
: "globalThis.Math( globalThis.JSON() );",
265 env
: { es2020
: true },
267 { messageId
: "unexpectedCall", data
: { name
: "Math" }, type
: "CallExpression", column
: 1, endColumn
: 37 },
268 { messageId
: "unexpectedCall", data
: { name
: "JSON" }, type
: "CallExpression", column
: 18, endColumn
: 35 }
272 code
: "var x = globalThis.Reflect();",
273 env
: { es2020
: true },
274 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Reflect" }, type
: "CallExpression" }]
277 code
: "var x = new globalThis.Reflect;",
278 env
: { es2020
: true },
279 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Reflect" }, type
: "NewExpression" }]
282 code
: "/*globals Reflect: true*/ Reflect();",
283 env
: { es2020
: true },
284 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Reflect" }, type
: "CallExpression" }]
287 code
: "var x = globalThis.Atomics();",
288 env
: { es2020
: true },
289 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Atomics" }, type
: "CallExpression" }]
292 code
: "var foo = bar ? baz: JSON; foo();",
293 errors
: [{ messageId
: "unexpectedRefCall", data
: { name
: "foo", ref
: "JSON" }, type
: "CallExpression" }]
296 code
: "var foo = bar ? baz: JSON; new foo();",
297 errors
: [{ messageId
: "unexpectedRefCall", data
: { name
: "foo", ref
: "JSON" }, type
: "NewExpression" }]
300 code
: "var foo = bar ? baz: globalThis.JSON; foo();",
301 env
: { es2020
: true },
302 errors
: [{ messageId
: "unexpectedRefCall", data
: { name
: "foo", ref
: "JSON" }, type
: "CallExpression" }]
305 code
: "var foo = bar ? baz: globalThis.JSON; new foo();",
306 env
: { es2020
: true },
307 errors
: [{ messageId
: "unexpectedRefCall", data
: { name
: "foo", ref
: "JSON" }, type
: "NewExpression" }]
310 code
: "var foo = window.Atomics; foo();",
311 env
: { es2020
: true, browser
: true },
312 errors
: [{ messageId
: "unexpectedRefCall", data
: { name
: "foo", ref
: "Atomics" }, type
: "CallExpression" }]
315 code
: "var foo = window.Atomics; new foo;",
316 env
: { es2020
: true, browser
: true },
317 errors
: [{ messageId
: "unexpectedRefCall", data
: { name
: "foo", ref
: "Atomics" }, type
: "NewExpression" }]