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