• 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/prefer-common-mustsucceed');
11
12const msg1 = 'Please use common.mustSucceed instead of ' +
13             'common.mustCall(assert.ifError).';
14const msg2 = 'Please use common.mustSucceed instead of ' +
15             'common.mustCall with assert.ifError.';
16
17new RuleTester({
18  parserOptions: { ecmaVersion: 2015 }
19}).run('prefer-common-mustsucceed', rule, {
20  valid: [
21    'foo((err) => assert.ifError(err))',
22    'foo(function(err) { assert.ifError(err) })',
23    'foo(assert.ifError)',
24    'common.mustCall((err) => err)',
25  ],
26  invalid: [
27    {
28      code: 'common.mustCall(assert.ifError)',
29      errors: [{ message: msg1 }]
30    },
31    {
32      code: 'common.mustCall((err) => assert.ifError(err))',
33      errors: [{ message: msg2 }]
34    },
35    {
36      code: 'common.mustCall((e) => assert.ifError(e))',
37      errors: [{ message: msg2 }]
38    },
39    {
40      code: 'common.mustCall(function(e) { assert.ifError(e); })',
41      errors: [{ message: msg2 }]
42    },
43    {
44      code: 'common.mustCall(function(e) { return assert.ifError(e); })',
45      errors: [{ message: msg2 }]
46    },
47    {
48      code: 'common.mustCall(function(e) {{ assert.ifError(e); }})',
49      errors: [{ message: msg2 }]
50    },
51  ]
52});
53