1'use strict';
2
3const common = require('../common');
4if (!common.hasCrypto)
5  common.skip('missing crypto');
6if (!common.hasIntl)
7  common.skip('missing Intl');
8common.skipIfEslintMissing();
9
10const RuleTester = require('../../tools/node_modules/eslint').RuleTester;
11const rule = require('../../tools/eslint-rules/documented-deprecation-codes');
12
13const mdFile = 'doc/api/deprecations.md';
14
15const invalidCode = 'UNDOCUMENTED INVALID CODE';
16
17new RuleTester().run('documented-deprecation-codes', rule, {
18  valid: [
19    `
20    deprecate(function() {
21        return this.getHeaders();
22      }, 'OutgoingMessage.prototype._headers is deprecated', 'DEP0066')
23    `,
24  ],
25  invalid: [
26    {
27      code: `
28        deprecate(function foo(){}, 'bar', '${invalidCode}');
29      `,
30      errors: [
31        {
32          message: `"${invalidCode}" does not match the expected pattern`,
33          line: 2
34        },
35        {
36          message: `"${invalidCode}" is not documented in ${mdFile}`,
37          line: 2
38        },
39      ]
40    },
41  ]
42});
43