From 1bab84c229d6388a958902898b50b4dd6d5ef27e Mon Sep 17 00:00:00 2001 From: John Gee Date: Sun, 22 May 2022 13:17:42 +1200 Subject: [PATCH] Add test for Option passed to wrong routines (#1729) --- tests/command.option-misuse.test.js | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 tests/command.option-misuse.test.js diff --git a/tests/command.option-misuse.test.js b/tests/command.option-misuse.test.js new file mode 100644 index 000000000..d41e0ffc2 --- /dev/null +++ b/tests/command.option-misuse.test.js @@ -0,0 +1,22 @@ +const { Command, Option } = require('../'); + +// It is a reasonable and easy mistake to pass Option to .option(). Detect this +// and offer advice. + +const expectedMessage = 'To add an Option object use addOption() instead of option() or requiredOption()'; + +test('when pass Option to .option() then throw', () => { + const program = new Command(); + + expect(() => { + program.option(new Option('-d, debug')); + }).toThrow(expectedMessage); +}); + +test('when pass Option to .requiredOption() then throw', () => { + const program = new Command(); + + expect(() => { + program.requiredOption(new Option('-d, debug')); + }).toThrow(expectedMessage); +});