'use strict'; const common = require('../common'); if (!common.hasCrypto) common.skip('missing crypto'); if (!common.hasIntl) common.skip('missing Intl'); common.skipIfEslintMissing(); const RuleTester = require('../../tools/eslint/node_modules/eslint').RuleTester; const rule = require('../../tools/eslint-rules/documented-deprecation-codes'); const mdFile = 'doc/api/deprecations.md'; const invalidCode = 'UNDOCUMENTED INVALID CODE'; new RuleTester().run('documented-deprecation-codes', rule, { valid: [ ` deprecate(function() { return this.getHeaders(); }, 'OutgoingMessage.prototype._headers is deprecated', 'DEP0066') `, ], invalid: [ { code: ` deprecate(function foo(){}, 'bar', '${invalidCode}'); `, errors: [ { message: `"${invalidCode}" does not match the expected pattern`, line: 2 }, { message: `"${invalidCode}" is not documented in ${mdFile}`, line: 2 }, ] }, ] });