From b91570653721274e07147ac6bf7cc6ba91cafc1b Mon Sep 17 00:00:00 2001 From: michga Date: Sat, 25 Jul 2020 11:25:25 +0200 Subject: [PATCH] tests: remove eslint-disable jest/no-test-callback (#1312) * 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). * fix: code style * test: ensure an assertion is made (code review) --- tests/command.exitOverride.test.js | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/tests/command.exitOverride.test.js b/tests/command.exitOverride.test.js index ecd1f1e46..481b85e16 100644 --- a/tests/command.exitOverride.test.js +++ b/tests/command.exitOverride.test.js @@ -175,19 +175,19 @@ 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() => { + expect.hasAssertions(); 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', () => {