Как проверить, содержит ли имя файла строку с Mocha / Chai? - PullRequest
0 голосов
/ 21 апреля 2019

Я создал пакет NPM, содержащий коллекцию задач Gulp.Я добавил несколько тестов, используя Mocha + Chai, чтобы убедиться, что он продолжает правильно создавать ресурсы.

Один из тестов должен подтвердить, что созданный сжатый файл существует и не является пустым.

Я использовал chai-fs, чтобы проверить, существует ли файл.

Проблема заключается в том, что сгенерированный файл хешируется, поэтому он выглядит как main-07781b0850.min.css.07781b0850 генерируется gulp-rev.

Вот что я делаю:

const chai = require('chai');
const expect = require('chai').expect;
const fs = require('chai-fs');
chai.use(fs);

describe('production', function () {
  // Styles.
  it('CSS file is minified.', function(done) {
    expect('test-website/dist/styles/main-07781b0850.min.css').to.be.a.file().and.have.contents.that.match(/\*\/(?!\n).*$/);
    done();
  });
});

Поскольку я знаю, что хэш всегда содержит 10 символов / цифр,Я хотел бы проверить, соответствует ли сгенерированный файл этому шаблону: main-[a-z0-9]{10}.min.css.

Я не нашел способа использовать регулярные выражения с chai-fs и с chai-files.

1 Ответ

0 голосов
/ 05 мая 2019

Если у вас есть имя сгенерированного файла, вы можете проверить, соответствует ли оно шаблону с помощью метода RegExp.test () :

const regex = /main-[a-z0-9]{10}.min.css/;
expect(regex.test(filename)).to.be.true;

В этом случае проверкабудет успешным, если вы введете имя файла как main-07781b0850.min.css, а также если вы введете полный путь, например test-website/dist/styles/main-07781b0850.min.css.

Если вы хотите проверить содержимое файла по шаблону, вы можете загрузить их встрока и использовать тот же подход.

...