• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict';
2
3const common = require('../common');
4if (!common.hasCrypto)
5  common.skip('missing crypto');
6
7common.skipIfEslintMissing();
8
9const RuleTester = require('../../tools/node_modules/eslint').RuleTester;
10const rule = require('../../tools/eslint-rules/required-modules');
11
12new RuleTester().run('required-modules', rule, {
13  valid: [
14    {
15      code: 'require("common")',
16      options: [{ common: 'common' }]
17    },
18    {
19      code: 'foo',
20      options: []
21    },
22    {
23      code: 'require("common")',
24      options: [{ common: 'common(/index\\.(m)?js)?$' }]
25    },
26    {
27      code: 'require("common/index.js")',
28      options: [{ common: 'common(/index\\.(m)?js)?$' }]
29    },
30  ],
31  invalid: [
32    {
33      code: 'foo',
34      options: [{ common: 'common' }],
35      errors: [{ message: 'Mandatory module "common" must be loaded.' }]
36    },
37    {
38      code: 'require("common/fixtures.js")',
39      options: [{ common: 'common(/index\\.(m)?js)?$' }],
40      errors: [{
41        message:
42          'Mandatory module "common" must be loaded.'
43      }]
44    },
45    {
46      code: 'require("somethingElse")',
47      options: [{ common: 'common' }],
48      errors: [{ message: 'Mandatory module "common" must be loaded.' }]
49    },
50  ]
51});
52