I am using mocha/supertest/should.js to test my Rest Service
GET /files/
returns file as stream.
How can I assert in should.js
I think that you should use non-blocking calls in JavaScript to get a better performance, at least to prevent from blocking other operations:
Blocking is when the execution of additional JavaScript in the Node.js process must wait until a non-JavaScript operation completes. This happens because the event loop is unable to continue running JavaScript while a blocking operation is occurring.
In Node.js, JavaScript that exhibits poor performance due to being CPU intensive rather than waiting on a non-JavaScript operation, such as I/O, isn't typically referred to as blocking. Synchronous methods in the Node.js standard library that use libuv are the most commonly used blocking operations. Native modules may also have blocking methods.
So, I would change the Sync
calls with something like the following code. Also, I would use the method equals
that Max
suggest to compare both files:
const fs = require('fs')
fs.readFile('file1', (err, data1) => {
if (err) throw err;
fs.readFile('file2', (err, data2) => {
if (err) throw err;
if (data1.equals(data2)) {
console.log('EQUAL')
} else {
console.log('NON EQUAL')
}
});
});
Though for a small and a single script the result would be almost the same