From e200ce0af53d4f17c825503357e1b251d8be717e Mon Sep 17 00:00:00 2001 From: Rodric Rabbah Date: Tue, 11 Feb 2020 16:18:48 -0500 Subject: [PATCH] Only emit rule delete if json flag is given. --- src/commands/runtime/rule/delete.js | 12 +++++++++--- test/__fixtures__/rule/delete.json | 17 +++++++++++++++++ test/commands/runtime/rule/delete.test.js | 12 ++++++++++++ 3 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 test/__fixtures__/rule/delete.json diff --git a/src/commands/runtime/rule/delete.js b/src/commands/runtime/rule/delete.js index ae8528a8..946b0cd1 100644 --- a/src/commands/runtime/rule/delete.js +++ b/src/commands/runtime/rule/delete.js @@ -10,15 +10,18 @@ governing permissions and limitations under the License. */ const RuntimeBaseCommand = require('../../../RuntimeBaseCommand') +const { flags } = require('@oclif/command') class RuleDelete extends RuntimeBaseCommand { async run () { - const { args } = this.parse(RuleDelete) + const { flags, args } = this.parse(RuleDelete) try { const ow = await this.wsk() const RuleDeleteObject = { ...args } const deleteRule = await ow.rules.delete(RuleDeleteObject) - this.log(`Rules Deleted! ${JSON.stringify(deleteRule, null, 2)}`) + if (flags.json) { + this.logJSON('', deleteRule) + } } catch (err) { this.handleError('failed to delete rules', err) } @@ -36,7 +39,10 @@ RuleDelete.args = [ ] RuleDelete.flags = { - ...RuntimeBaseCommand.flags + ...RuntimeBaseCommand.flags, + json: flags.boolean({ + description: 'output raw json' + }) } RuleDelete.aliases = [ diff --git a/test/__fixtures__/rule/delete.json b/test/__fixtures__/rule/delete.json new file mode 100644 index 00000000..39d8f221 --- /dev/null +++ b/test/__fixtures__/rule/delete.json @@ -0,0 +1,17 @@ +{ + "action": { + "name": "hello", + "path": "abcxyz-81khn753xw7jx" + }, + "annotations": [], + "name": "r", + "namespace": "abcxyz-81khn753xw7jx", + "publish": false, + "status": "inactive", + "trigger": { + "name": "t", + "path": "abcxyz-81khn753xw7jx" + }, + "updated": 1581455653032, + "version": "0.0.1" +} diff --git a/test/commands/runtime/rule/delete.test.js b/test/commands/runtime/rule/delete.test.js index 3c738785..6834d477 100644 --- a/test/commands/runtime/rule/delete.test.js +++ b/test/commands/runtime/rule/delete.test.js @@ -76,6 +76,18 @@ describe('instance methods', () => { }) }) + test('delete simple rule with --json', () => { + const cmd = ow.mockResolvedFixture(owAction, 'rule/delete.json') + command.argv = ['nameFoo', '--json'] + return command.run() + .then(() => { + expect(cmd).toHaveBeenCalledWith({ + name: 'nameFoo' + }) + expect(JSON.parse(stdout.output)).toMatchFixtureJson('rule/delete.json') + }) + }) + test('errors out on api error', () => { return new Promise((resolve, reject) => { ow.mockRejected('rules.delete', new Error('an error'))