Skip to content

Commit 27dfd09

Browse files
Updating missionctrl update command to use generic print function
1 parent af5933c commit 27dfd09

File tree

2 files changed

+22
-31
lines changed

2 files changed

+22
-31
lines changed

src/commands/missionctrl/broker/update.ts

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import {Flags} from '@oclif/core'
22

33
import {ScCommand} from '../../../sc-command.js'
4-
import {EventBrokerListApiResponse, EventBrokerOperationApiResponse, EventBrokerOperationDetail} from '../../../types/broker.js'
5-
import {camelCaseToTitleCase, renderKeyValueTable} from '../../../util/internal.js'
4+
import {EventBrokerListApiResponse, EventBrokerOperationApiResponse} from '../../../types/broker.js'
5+
import {printObjectAsKeyValueTable} from '../../../util/internal.js'
66
import {ScConnection} from '../../../util/sc-connection.js'
77

88
export default class MissionctrlBrokerUpdate extends ScCommand<typeof MissionctrlBrokerUpdate> {
@@ -13,7 +13,11 @@ export default class MissionctrlBrokerUpdate extends ScCommand<typeof Missionctr
1313
Your token must have one of the permissions listed in the Token Permissions.
1414
1515
Token Permissions: [ mission_control:access or services:put ]`
16-
static override examples = ['<%= config.bin %> <%= command.id %>']
16+
static override examples = [
17+
'<%= config.bin %> <%= command.id %>',
18+
'<%= config.bin %> <%= command.id %> --broker-id <broker-id> --new-name <new-name>',
19+
'<%= config.bin %> <%= command.id %> --name <name> --new-name <new-name>',
20+
]
1721
static override flags = {
1822
'broker-id': Flags.string({
1923
char: 'b',
@@ -34,7 +38,7 @@ export default class MissionctrlBrokerUpdate extends ScCommand<typeof Missionctr
3438
}),
3539
}
3640

37-
public async run(): Promise<EventBrokerOperationDetail> {
41+
public async run(): Promise<EventBrokerOperationApiResponse> {
3842
const {flags} = await this.parse(MissionctrlBrokerUpdate)
3943

4044
const brokerId = flags['broker-id'] ?? ''
@@ -73,17 +77,8 @@ export default class MissionctrlBrokerUpdate extends ScCommand<typeof Missionctr
7377
apiUrl += `/${brokerIdToUpdate}`
7478
const resp = await conn.patch<EventBrokerOperationApiResponse>(apiUrl, body)
7579
this.log(`Broker with id '${brokerIdToUpdate}' has been updated successfully.`)
76-
this.print(resp.data)
80+
this.log(printObjectAsKeyValueTable(resp.data as unknown as Record<string, unknown>))
7781

78-
return resp.data
79-
}
80-
81-
private print(broker: EventBrokerOperationDetail): void {
82-
const tableRows = [
83-
['Key', 'Value'],
84-
...Object.entries(broker).map(([key, value]) => [camelCaseToTitleCase(key), value]),
85-
]
86-
this.log()
87-
this.log(renderKeyValueTable(tableRows))
82+
return resp
8883
}
8984
}

test/commands/missionctrl/broker/update.test.ts

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,14 @@ import {expect} from 'chai'
33
import * as sinon from 'sinon'
44

55
import {EventBrokerListApiResponse, EventBrokerOperationApiResponse} from '../../../../src/types/broker.js'
6-
import {camelCaseToTitleCase, renderKeyValueTable} from '../../../../src/util/internal.js'
6+
import {printObjectAsKeyValueTable} from '../../../../src/util/internal.js'
77
import {ScConnection} from '../../../../src/util/sc-connection.js'
88
import {aBroker, createTestOperationResponse, setEnvVariables} from '../../../util/test-utils.js'
99

1010
describe('missionctrl:broker:update', () => {
1111
setEnvVariables()
12-
const brokerName: string = 'Default'
12+
const brokerName: string = 'MyTestBrokerName'
13+
const newBrokerName: string = 'MyNewTestBrokerName'
1314
const brokerId: string = 'MyTestBrokerId'
1415
let scGetConnStub: sinon.SinonStub
1516
let scPatchConnStub: sinon.SinonStub
@@ -42,24 +43,22 @@ describe('missionctrl:broker:update', () => {
4243
)
4344
scPatchConnStub.returns(Promise.resolve(updatedBrokerOpResponse))
4445

45-
const tableRows = [
46-
['Key', 'Value'],
47-
...Object.entries(updatedBrokerOpResponse.data).map(([key, value]) => [camelCaseToTitleCase(key), value]),
48-
]
49-
5046
// Act
5147
const {stdout} = await runCommand(`missionctrl:broker:update -b ${brokerId} -l true`)
5248

5349
// Assert
5450
expect(scPatchConnStub.getCall(0).calledWith(`/missionControl/eventBrokerServices/${brokerId}`, expectBody)).to.be
5551
.true
56-
expect(stdout).to.contain(renderKeyValueTable(tableRows))
52+
expect(stdout).to.contain(
53+
printObjectAsKeyValueTable(updatedBrokerOpResponse.data as unknown as Record<string, unknown>),
54+
)
5755
})
5856

59-
it(`runs missionctrl:broker:update -n ${brokerName} -l true`, async () => {
57+
it(`runs missionctrl:broker:update -n ${brokerName} -l true --new-name ${newBrokerName}`, async () => {
6058
// Arrange
6159
const expectBody = {
6260
locked: true,
61+
name: newBrokerName,
6362
}
6463
const expectBrokerResponse: EventBrokerListApiResponse = {
6564
data: [aBroker(brokerId, brokerName)],
@@ -73,18 +72,15 @@ describe('missionctrl:broker:update', () => {
7372
scGetConnStub.returns(Promise.resolve(expectBrokerResponse))
7473
scPatchConnStub.returns(Promise.resolve(updatedBrokerOpResponse))
7574

76-
const tableRows = [
77-
['Key', 'Value'],
78-
...Object.entries(updatedBrokerOpResponse.data).map(([key, value]) => [camelCaseToTitleCase(key), value]),
79-
]
80-
8175
// Act
82-
const {stdout} = await runCommand(`missionctrl:broker:update -n ${brokerName} -l true`)
76+
const {stdout} = await runCommand(`missionctrl:broker:update -n ${brokerName} -l true --new-name ${newBrokerName}`)
8377

8478
// Assert
8579
expect(scGetConnStub.getCall(0).args[0]).to.contain(`?customAttributes=name=="${brokerName}"`)
8680
expect(scPatchConnStub.getCall(0).calledWith(`/missionControl/eventBrokerServices/${brokerId}`, expectBody)).to.be
8781
.true
88-
expect(stdout).to.contain(renderKeyValueTable(tableRows))
82+
expect(stdout).to.contain(
83+
printObjectAsKeyValueTable(updatedBrokerOpResponse.data as unknown as Record<string, unknown>),
84+
)
8985
})
9086
})

0 commit comments

Comments
 (0)