mocha-examples
mocha-examples copied to clipboard
🚀 Example: Stubbing Node globals with sinon
I have a file fele.js that specifies all commands that my app needs.
Command Used - Just says hello world when hello is entered.
const program = new commander.Command();
const helloCommand = program.command('hello');
helloCommand
.action(async(options) => {
console.log("Hello World"); //Works well as
return "Hello World";//But this does not work.
})
Now I am using Mocha to test the command. PFB Code
const assert = require('assert');
const { spawn } = require('child_process');
const path = require('path');
describe('Hello Command', function() {
it('should output a greeting message', function(done) {
const expectedOutput = 'Hello World\n';
const cliPath = path.join(__dirname,'fele.js');
const process = spawn('node', [cliPath, 'hello']);
let actual = '';
process.stdout.on('data', data => {
actual += data.toString();
});
process.on('close', () => {
assert.strictEqual(output, expectedOutput);
done();
});
});
});
Please do suggest me an approach with which I can be able to get not only by using console.log but also by using return statement. Like process.stdout.on works for console.log statements, suggest me some thing that works for a process's method return value.