I have a basic CLI program built using yargs. I'm able to cover test cases for exported functions in the application.
As you can see below test coverage is not done from line 12-18
which. How do we write unit test coverage for third-party package like yargs
?
index.js
const yargs = require('yargs');
const { hideBin } = require('yargs/helpers');
const greet = (name) => {
return `Welcome ${name}`;
};
yargs(hideBin(process.argv)).command(
'run [name]',
'print name',
(yargs) => {
yargs.positional('name', { describe: 'Your name', type: 'string' });
},
(args) => {
const { name } = args;
const greetMsg = greet(name);
console.log(greetMsg);
}
).argv;
module.exports = { greet };
index.test.js
const { greet } = require('./index')
describe.only('greeting', () => {
it('greet', async () => {
const greetMsg = greet('test')
expect(greetMsg).toBe('Welcome test')
})
})
test coverage
PASS ./index.test.js
greeting
✓ greet (5 ms)
----------|---------|----------|---------|---------|-------------------
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
----------|---------|----------|---------|---------|-------------------
All files | 63.64 | 100 | 33.33 | 63.64 |
index.js | 63.64 | 100 | 33.33 | 63.64 | 12-18
----------|---------|----------|---------|---------|-------------------
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 1.316 s, estimated 2 s
Ran all test suites.