Как можно использовать нежелательные функции в базе кода в Node, особенно Gulp?
Я проверяю непреднамеренно испорченные спецификации, т.е. ddescribe
/fdescribe
и iit
/fit
для жасмина или .only
и .skip
для Mocha:
// should be reported
fdescribe(function () {
// should not be reported
it(function () {
var fit = ...;
this.fit = ...;
});
// should not be reported
// fit(function () { ... });
// should be reported
xit(function () { ... });
// should be reported
fit(function () { ... });
});
// should be reported
describe.only(function () {
// should not be reported
it(function () { ... });
// should not be reported
// it.only(function () { ... });
// should be reported
it.skip(function () { ... });
// should be reported
it.only(function () { ... });
});
Задача должна выйти с ошибками и именами выходных файлов и номерами строк, в которых используются перечисленные функции.
Отмеченные наверняка не обязательно должны быть обнаружены, а также функции/свойства с тем же именем (скорее всего, fit
), поэтому простое совпадение регулярных выражений здесь не является вариантом (например, для console.*
). Будет оценено некоторое решение на основе AST, которое принимает пользовательские имена функций.