]> git.proxmox.com Git - pve-eslint.git/blob - eslint/tests/lib/rules/no-alert.js
4851d5b0a7a294a0b393cd073eb6a7e4661ae608
[pve-eslint.git] / eslint / tests / lib / rules / no-alert.js
1 /**
2 * @fileoverview Tests for no-alert rule.
3 * @author Nicholas C. Zakas
4 */
5
6 "use strict";
7
8 //------------------------------------------------------------------------------
9 // Requirements
10 //------------------------------------------------------------------------------
11
12 const rule = require("../../../lib/rules/no-alert"),
13 { RuleTester } = require("../../../lib/rule-tester");
14
15 //------------------------------------------------------------------------------
16 // Tests
17 //------------------------------------------------------------------------------
18
19 const ruleTester = new RuleTester();
20
21 ruleTester.run("no-alert", rule, {
22 valid: [
23 "a[o.k](1)",
24 "foo.alert(foo)",
25 "foo.confirm(foo)",
26 "foo.prompt(foo)",
27 "function alert() {} alert();",
28 "var alert = function() {}; alert();",
29 "function foo() { var alert = bar; alert(); }",
30 "function foo(alert) { alert(); }",
31 "var alert = function() {}; function test() { alert(); }",
32 "function foo() { var alert = function() {}; function test() { alert(); } }",
33 "function confirm() {} confirm();",
34 "function prompt() {} prompt();",
35 "window[alert]();",
36 "function foo() { this.alert(); }",
37 "function foo() { var window = bar; window.alert(); }",
38 "globalThis.alert();",
39 { code: "globalThis['alert']();", env: { es6: true } },
40 { code: "globalThis.alert();", env: { es2017: true } },
41 { code: "var globalThis = foo; globalThis.alert();", env: { es2020: true } },
42 { code: "function foo() { var globalThis = foo; globalThis.alert(); }", env: { es2020: true } }
43 ],
44 invalid: [
45 {
46 code: "alert(foo)",
47 errors: [{ messageId: "unexpected", data: { name: "alert" }, type: "CallExpression", line: 1, column: 1 }]
48 },
49 {
50 code: "window.alert(foo)",
51 errors: [{ messageId: "unexpected", data: { name: "alert" }, type: "CallExpression", line: 1, column: 1 }]
52 },
53 {
54 code: "window['alert'](foo)",
55 errors: [{ messageId: "unexpected", data: { name: "alert" }, type: "CallExpression", line: 1, column: 1 }]
56 },
57 {
58 code: "confirm(foo)",
59 errors: [{ messageId: "unexpected", data: { name: "confirm" }, type: "CallExpression", line: 1, column: 1 }]
60 },
61 {
62 code: "window.confirm(foo)",
63 errors: [{ messageId: "unexpected", data: { name: "confirm" }, type: "CallExpression", line: 1, column: 1 }]
64 },
65 {
66 code: "window['confirm'](foo)",
67 errors: [{ messageId: "unexpected", data: { name: "confirm" }, type: "CallExpression", line: 1, column: 1 }]
68 },
69 {
70 code: "prompt(foo)",
71 errors: [{ messageId: "unexpected", data: { name: "prompt" }, type: "CallExpression", line: 1, column: 1 }]
72 },
73 {
74 code: "window.prompt(foo)",
75 errors: [{ messageId: "unexpected", data: { name: "prompt" }, type: "CallExpression", line: 1, column: 1 }]
76 },
77 {
78 code: "window['prompt'](foo)",
79 errors: [{ messageId: "unexpected", data: { name: "prompt" }, type: "CallExpression", line: 1, column: 1 }]
80 },
81 {
82 code: "function alert() {} window.alert(foo)",
83 errors: [{ messageId: "unexpected", data: { name: "alert" }, type: "CallExpression", line: 1, column: 21 }]
84 },
85 {
86 code: "var alert = function() {};\nwindow.alert(foo)",
87 errors: [{ messageId: "unexpected", data: { name: "alert" }, type: "CallExpression", line: 2, column: 1 }]
88 },
89 {
90 code: "function foo(alert) { window.alert(); }",
91 errors: [{ messageId: "unexpected", data: { name: "alert" }, type: "CallExpression", line: 1, column: 23 }]
92 },
93 {
94 code: "function foo() { alert(); }",
95 errors: [{ messageId: "unexpected", data: { name: "alert" }, type: "CallExpression", line: 1, column: 18 }]
96 },
97 {
98 code: "function foo() { var alert = function() {}; }\nalert();",
99 errors: [{ messageId: "unexpected", data: { name: "alert" }, type: "CallExpression", line: 2, column: 1 }]
100 },
101 {
102 code: "this.alert(foo)",
103 errors: [{ messageId: "unexpected", data: { name: "alert" }, type: "CallExpression", line: 1, column: 1 }]
104 },
105 {
106 code: "this['alert'](foo)",
107 errors: [{ messageId: "unexpected", data: { name: "alert" }, type: "CallExpression", line: 1, column: 1 }]
108 },
109 {
110 code: "function foo() { var window = bar; window.alert(); }\nwindow.alert();",
111 errors: [{ messageId: "unexpected", data: { name: "alert" }, type: "CallExpression", line: 2, column: 1 }]
112 },
113 {
114 code: "globalThis['alert'](foo)",
115 env: { es2020: true },
116 errors: [{ messageId: "unexpected", data: { name: "alert" }, type: "CallExpression", line: 1, column: 1 }]
117 },
118 {
119 code: "globalThis.alert();",
120 env: { es2020: true },
121 errors: [{ messageId: "unexpected", data: { name: "alert" }, type: "CallExpression", line: 1, column: 1 }]
122 },
123 {
124 code: "function foo() { var globalThis = bar; globalThis.alert(); }\nglobalThis.alert();",
125 env: { es2020: true },
126 errors: [{ messageId: "unexpected", data: { name: "alert" }, type: "CallExpression", line: 2, column: 1 }]
127 }
128 ]
129 });