]> git.proxmox.com Git - pve-eslint.git/blob - eslint/tests/lib/rules/global-require.js
3fb6ccca459df0feada82d22f539d70349087525
[pve-eslint.git] / eslint / tests / lib / rules / global-require.js
1 /**
2 * @fileoverview Tests for global-require
3 * @author Jamund Ferguson
4 */
5
6 "use strict";
7
8 //------------------------------------------------------------------------------
9 // Requirements
10 //------------------------------------------------------------------------------
11
12 const rule = require("../../../lib/rules/global-require"),
13 { RuleTester } = require("../../../lib/rule-tester");
14
15 //------------------------------------------------------------------------------
16 // Tests
17 //------------------------------------------------------------------------------
18 const ruleTester = new RuleTester();
19
20 const valid = [
21 { code: "var x = require('y');" },
22 { code: "if (x) { x.require('y'); }" },
23 { code: "var x;\nx = require('y');" },
24 { code: "var x = 1, y = require('y');" },
25 { code: "var x = require('y'), y = require('y'), z = require('z');" },
26 { code: "var x = require('y').foo;" },
27 { code: "require('y').foo();" },
28 { code: "require('y');" },
29 { code: "function x(){}\n\n\nx();\n\n\nif (x > y) {\n\tdoSomething()\n\n}\n\nvar x = require('y').foo;" },
30 { code: "var logger = require(DEBUG ? 'dev-logger' : 'logger');" },
31 { code: "var logger = DEBUG ? require('dev-logger') : require('logger');" },
32 { code: "function localScopedRequire(require) { require('y'); }" },
33 { code: "var someFunc = require('./someFunc'); someFunc(function(require) { return('bananas'); });" }
34 ];
35
36 const error = { messageId: "unexpected", type: "CallExpression" };
37
38 const invalid = [
39
40 // block statements
41 {
42 code: "if (process.env.NODE_ENV === 'DEVELOPMENT') {\n\trequire('debug');\n}",
43 errors: [error]
44 },
45 {
46 code: "var x; if (y) { x = require('debug'); }",
47 errors: [error]
48 },
49 {
50 code: "var x; if (y) { x = require('debug').baz; }",
51 errors: [error]
52 },
53 {
54 code: "function x() { require('y') }",
55 errors: [error]
56 },
57 {
58 code: "try { require('x'); } catch (e) { console.log(e); }",
59 errors: [error]
60 },
61
62 // non-block statements
63 {
64 code: "var getModule = x => require(x);",
65 parserOptions: { ecmaVersion: 6 },
66 errors: [error]
67 },
68 {
69 code: "var x = (x => require(x))('weird')",
70 parserOptions: { ecmaVersion: 6 },
71 errors: [error]
72 },
73 {
74 code: "switch(x) { case '1': require('1'); break; }",
75 errors: [error]
76 }
77 ];
78
79 ruleTester.run("global-require", rule, {
80 valid,
81 invalid
82 });