From 018060dd19451fb5ec309abd0fa1a82c662d83cb Mon Sep 17 00:00:00 2001 From: michga Date: Sat, 25 Jul 2020 09:11:05 +0200 Subject: [PATCH 1/3] tests: remove eslint-disable jest/no-test-callback Instead of using the `done` callback from the test function, we can be using a Promise instead. I've checked that if `resolve` is not called the test fails (timeout). --- tests/command.exitOverride.test.js | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/tests/command.exitOverride.test.js b/tests/command.exitOverride.test.js index ecd1f1e46..172a0d629 100644 --- a/tests/command.exitOverride.test.js +++ b/tests/command.exitOverride.test.js @@ -175,19 +175,18 @@ describe('.exitOverride and error details', () => { expectCommanderError(caughtErr, 0, 'commander.version', myVersion); }); - // Have not worked out a cleaner way to do this, so suppress warning. - // eslint-disable-next-line jest/no-test-callback - test('when executableSubcommand succeeds then call exitOverride', (done) => { + test('when executableSubcommand succeeds then call exitOverride', async() => { const pm = path.join(__dirname, 'fixtures/pm'); const program = new commander.Command(); - program - .exitOverride((err) => { - expectCommanderError(err, 0, 'commander.executeSubCommandAsync', '(close)'); - done(); - }) - .command('silent', 'description'); - - program.parse(['node', pm, 'silent']); + await new Promise(resolve => { + program + .exitOverride((err) => { + expectCommanderError(err, 0, 'commander.executeSubCommandAsync', '(close)'); + resolve(); + }) + .command('silent', 'description'); + program.parse(['node', pm, 'silent']); + }); }); test('when mandatory program option missing then throw CommanderError', () => { From d750982cc4e95a3e51e333da6c4ff288b3246809 Mon Sep 17 00:00:00 2001 From: michga Date: Sat, 25 Jul 2020 09:12:49 +0200 Subject: [PATCH 2/3] fix: code style --- tests/command.exitOverride.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/command.exitOverride.test.js b/tests/command.exitOverride.test.js index 172a0d629..6636354d0 100644 --- a/tests/command.exitOverride.test.js +++ b/tests/command.exitOverride.test.js @@ -178,7 +178,7 @@ describe('.exitOverride and error details', () => { test('when executableSubcommand succeeds then call exitOverride', async() => { const pm = path.join(__dirname, 'fixtures/pm'); const program = new commander.Command(); - await new Promise(resolve => { + await new Promise((resolve) => { program .exitOverride((err) => { expectCommanderError(err, 0, 'commander.executeSubCommandAsync', '(close)'); From dfbbc0a7eb843adee134de107c03cc81aa851b8e Mon Sep 17 00:00:00 2001 From: michga Date: Sat, 25 Jul 2020 11:10:38 +0200 Subject: [PATCH 3/3] test: ensure an assertion is made (code review) --- tests/command.exitOverride.test.js | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/command.exitOverride.test.js b/tests/command.exitOverride.test.js index 6636354d0..481b85e16 100644 --- a/tests/command.exitOverride.test.js +++ b/tests/command.exitOverride.test.js @@ -176,6 +176,7 @@ describe('.exitOverride and error details', () => { }); test('when executableSubcommand succeeds then call exitOverride', async() => { + expect.hasAssertions(); const pm = path.join(__dirname, 'fixtures/pm'); const program = new commander.Command(); await new Promise((resolve) => {