How to check if two files have the same content?

hellboy picture hellboy · Sep 11, 2014 · Viewed 19.7k times · Source

I am using mocha/supertest/should.js to test REST Service

GET /files/<hash> returns file as stream.

How can I assert in should.js that file contents are the same?

it('should return file as stream', function (done) {
    var writeStream = fs.createWriteStream('test/fixtures/tmp.json');
    
    var req = api.get('/files/676dfg1430af3595');
    req.on('end', function(){
       var tmpBuf = fs.readFileSync('test/fixtures/tmp.json');
       var testBuf = fs.readFileSync('test/fixtures/test.json');
    
       // How to assert with should.js file contents are the same (tmpBuf == testBuf )
       // ...
    
       done();
    });
});

Answer

Max picture Max · Jan 15, 2018

Surprisingly, no one has suggested Buffer.equals. That seems to be the fastest and simplest approach and has been around since v0.11.

So your code would become tmpBuf.equals(testBuf)