summaryrefslogtreecommitdiff
path: root/test/parallel/test-eslint-prefer-common-mustsucceed.js
blob: fa16fa5f4c29e85fb0014000326be36375323d0d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
'use strict';

const common = require('../common');
if (!common.hasCrypto)
  common.skip('missing crypto');

common.skipIfEslintMissing();

const RuleTester = require('../../tools/node_modules/eslint').RuleTester;
const rule = require('../../tools/eslint-rules/prefer-common-mustsucceed');

const msg1 = 'Please use common.mustSucceed instead of ' +
             'common.mustCall(assert.ifError).';
const msg2 = 'Please use common.mustSucceed instead of ' +
             'common.mustCall with assert.ifError.';

new RuleTester({
  parserOptions: { ecmaVersion: 2015 }
}).run('prefer-common-mustsucceed', rule, {
  valid: [
    'foo((err) => assert.ifError(err))',
    'foo(function(err) { assert.ifError(err) })',
    'foo(assert.ifError)',
    'common.mustCall((err) => err)'
  ],
  invalid: [
    {
      code: 'common.mustCall(assert.ifError)',
      errors: [{ message: msg1 }]
    },
    {
      code: 'common.mustCall((err) => assert.ifError(err))',
      errors: [{ message: msg2 }]
    },
    {
      code: 'common.mustCall((e) => assert.ifError(e))',
      errors: [{ message: msg2 }]
    },
    {
      code: 'common.mustCall(function(e) { assert.ifError(e); })',
      errors: [{ message: msg2 }]
    },
    {
      code: 'common.mustCall(function(e) { return assert.ifError(e); })',
      errors: [{ message: msg2 }]
    },
    {
      code: 'common.mustCall(function(e) {{ assert.ifError(e); }})',
      errors: [{ message: msg2 }]
    }
  ]
});