Используйте jest для сравнения содержимого двух файлов

#javascript #node.js #jestjs

#javascript #node.js #jestjs

Вопрос:

Я пытаюсь переключиться с мокко и чая на Jest. В моей текущей настройке я также использую chai-files для сравнения содержимого двух файлов:

 import chai, { expect } from 'chai';
import chaiFiles, { file } from 'chai-files';
import fs from 'fs-extra';
import { exec } from 'child-process-promise';

chai.use(chaiFiles);

describe('cli', () => {
    before(() => {
        process.chdir(__dirname);
    });

    it('should run', async () => {
        // make a copy of entry file
        fs.copySync('./configs/entry/config.version-and-build.xml', './config.xml');

        // executes code that changes temp files
        await exec('../dist/cli.js -v 2.4.9 -b 86');

        // checks if target file and change temp file are equal
        expect(file('./config.xml')).to.equal(file('./configs/expected/config.version-and-build.to.version-and-build.xml'));
    });

    afterEach(() => {
        if (fs.existsSync(tempConfigFile)) {
            fs.removeSync(tempConfigFile);
        }
    });
});

  

Как это должно быть сделано в Jest? Нужно ли мне загружать оба файла и сравнивать содержимое?

Ответ №1:

Да, просто загрузите содержимое каждого из них вот так:

 expect(fs.readFileSync(actualPath)).toEqual(fs.readFileSync(expectedPath));