Правило Eslint для избежания 'содержать' в утверждениях кидает 'Должен иметь 1 ошибку, но имел 0' ошибка - PullRequest
1 голос
/ 03 июля 2019

Я создаю новое правило, чтобы не использовать утверждение «содержать» в «следует».Я использовал 'yo eslint: plugin', а затем 'yo eslint: rule', чтобы создать структуру.Сейчас пытаюсь написать правило.К сожалению, после npm test я получаю AssertionError [ERR_ASSERTION]: Should have 1 error but had 0: [].

lib / rules / no-contains-assertion.js

module.exports = {
  meta: {
    docs: {
      description:
        "Rule to flag use of should.('contain') in tests, preventing tests with non strict assertion being committed accidentally",
      category: "StrictAssertion",
      recommended: false
    },
    fixable: null, // or "code" or "whitespace"
    schema: [
      // fill in your schema
    ]
  },

  create: function(context) {
    return {
      StrictAssertion(node) {
        if (node.object.name === 'should' && node.arguments[0] === 'contain') {
          context.report({
            node,
            message: `Don't use ${node}(${node.arguments[0]})`,
          });
        }
      }
    };
  }
};

тесты /lib / rules / no-contains-assertion.js

var ruleTester = new RuleTester();
ruleTester.run("no-contain-assertion", rule, {

    valid: [
        "should('have.text')"
    ],

    invalid: [
        {
            code: "should('contain')",
            errors: [{
                message: "Don't use 'contain' in assertion!",
                type: "StrictAssertion"
            }]
        }
    ]
});
...