diff --git a/bin/run b/bin/run index c59cbad..cb0e2fe 100755 --- a/bin/run +++ b/bin/run @@ -11,8 +11,8 @@ OF ANY KIND, either express or implied. See the License for the specific languag governing permissions and limitations under the License. */ -const oclif = require('@oclif/core') - -oclif.run() - .then(require('@oclif/core/flush')) - .catch(require('@oclif/core/handle')) +// eslint-disable-next-line node/shebang +(async () => { + const oclif = await import('@oclif/core') + await oclif.execute({ type: 'cjs', dir: __dirname }) +})() diff --git a/package.json b/package.json index 32f523d..53bbd13 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "@adobe/aio-lib-env": "^3", "@adobe/aio-lib-events": "^4", "@adobe/aio-lib-ims": "^7", - "@oclif/core": "^1.5.2", + "@oclif/core": "^2.8.12", "inquirer": "^8.2.5", "js-yaml": "^4.1.0" }, diff --git a/src/commands/event/eventmetadata/create.js b/src/commands/event/eventmetadata/create.js index 193a1c2..42dc546 100644 --- a/src/commands/event/eventmetadata/create.js +++ b/src/commands/event/eventmetadata/create.js @@ -11,7 +11,7 @@ governing permissions and limitations under the License. */ const BaseCommand = require('../../../BaseCommand.js') -const { Flags, CliUx: { ux: cli } } = require('@oclif/core') +const { Args, Flags, ux: cli } = require('@oclif/core') const { sentenceValidatorWithMinOneChar, eventCodeValidator } = require('../../../utils/validator') const inquirer = require('inquirer') const aioLogger = require('@adobe/aio-lib-core-logging')('@adobe/aio-cli-plugin-events:eventmetadata:create', { provider: 'debug' }) @@ -61,9 +61,12 @@ class EventmetadataCreateCommand extends BaseCommand { EventmetadataCreateCommand.description = 'Create an Event Metadata for a Provider' -EventmetadataCreateCommand.args = [ - { name: 'providerId', required: true, description: 'The requested eventmetadata event code' } -] +EventmetadataCreateCommand.args = { + providerId: Args.string({ + required: true, + description: 'The requested provider ID' + }) +} EventmetadataCreateCommand.flags = { ...BaseCommand.flags, diff --git a/src/commands/event/eventmetadata/delete.js b/src/commands/event/eventmetadata/delete.js index 2f9e577..cd107df 100644 --- a/src/commands/event/eventmetadata/delete.js +++ b/src/commands/event/eventmetadata/delete.js @@ -11,7 +11,7 @@ governing permissions and limitations under the License. */ const BaseCommand = require('../../../BaseCommand.js') -const { CliUx: { ux: cli } } = require('@oclif/core') +const { Args, ux: cli } = require('@oclif/core') const inquirer = require('inquirer') const aioLogger = require('@adobe/aio-lib-core-logging')('@adobe/aio-cli-plugin-events:eventmetadata:delete', { provider: 'debug' }) @@ -64,10 +64,16 @@ class EventmetadataDeleteCommand extends BaseCommand { EventmetadataDeleteCommand.description = 'Delete Event Metadata for a Provider' -EventmetadataDeleteCommand.args = [ - { name: 'providerId', required: true, description: 'The requested provider ID' }, - { name: 'eventCode', required: false, description: 'The requested eventmetadata event code' } -] +EventmetadataDeleteCommand.args = { + providerId: Args.string({ + required: true, + description: 'The requested provider ID' + }), + eventCode: Args.string({ + required: false, + description: 'The requested event code' + }) +} EventmetadataDeleteCommand.flags = { ...BaseCommand.flags diff --git a/src/commands/event/eventmetadata/get.js b/src/commands/event/eventmetadata/get.js index d8c7d04..cc3b91f 100644 --- a/src/commands/event/eventmetadata/get.js +++ b/src/commands/event/eventmetadata/get.js @@ -11,7 +11,7 @@ governing permissions and limitations under the License. */ const BaseCommand = require('../../../BaseCommand.js') -const { Flags, CliUx: { ux: cli } } = require('@oclif/core') +const { Args, Flags, ux: cli } = require('@oclif/core') const aioLogger = require('@adobe/aio-lib-core-logging')('@adobe/aio-cli-plugin-events:eventmetadata:get', { provider: 'debug' }) class EventmetadataGetCommand extends BaseCommand { @@ -41,10 +41,16 @@ class EventmetadataGetCommand extends BaseCommand { EventmetadataGetCommand.description = 'Get details of an Event Code of a Provider' -EventmetadataGetCommand.args = [ - { name: 'providerId', required: true, description: 'The requested provider ID' }, - { name: 'eventCode', required: true, description: 'The requested eventmetadata event code' } -] +EventmetadataGetCommand.args = { + providerId: Args.string({ + required: true, + description: 'The requested provider ID' + }), + eventCode: Args.string({ + required: true, + description: 'The requested event code' + }) +} EventmetadataGetCommand.flags = { ...BaseCommand.flags, diff --git a/src/commands/event/eventmetadata/list.js b/src/commands/event/eventmetadata/list.js index 8d4bbce..7d4c37d 100644 --- a/src/commands/event/eventmetadata/list.js +++ b/src/commands/event/eventmetadata/list.js @@ -11,7 +11,7 @@ governing permissions and limitations under the License. */ const BaseCommand = require('../../../BaseCommand.js') -const { Flags, CliUx: { ux: cli } } = require('@oclif/core') +const { Args, Flags, ux: cli } = require('@oclif/core') const aioLogger = require('@adobe/aio-lib-core-logging')('@adobe/aio-cli-plugin-events:eventmetadata:list', { provider: 'debug' }) class EventmetadataListCommand extends BaseCommand { @@ -58,9 +58,12 @@ EventmetadataListCommand.aliases = [ 'event:eventmetadata:ls' ] -EventmetadataListCommand.args = [ - { name: 'providerId', required: true, description: 'The requested provider ID' } -] +EventmetadataListCommand.args = { + providerId: Args.string({ + required: true, + description: 'The requested provider ID' + }) +} EventmetadataListCommand.flags = { ...BaseCommand.flags, diff --git a/src/commands/event/eventmetadata/update.js b/src/commands/event/eventmetadata/update.js index 396e393..05ea09d 100644 --- a/src/commands/event/eventmetadata/update.js +++ b/src/commands/event/eventmetadata/update.js @@ -11,7 +11,7 @@ governing permissions and limitations under the License. */ const BaseCommand = require('../../../BaseCommand.js') -const { Flags, CliUx: { ux: cli } } = require('@oclif/core') +const { Args, Flags, ux: cli } = require('@oclif/core') const { sentenceValidatorWithMinOneChar } = require('../../../utils/validator') const inquirer = require('inquirer') const aioLogger = require('@adobe/aio-lib-core-logging')('@adobe/aio-cli-plugin-events:eventmetadata:update', { provider: 'debug' }) @@ -56,10 +56,16 @@ class EventmetadataUpdateCommand extends BaseCommand { EventmetadataUpdateCommand.description = 'Update an Event Metadata for a Provider' -EventmetadataUpdateCommand.args = [ - { name: 'providerId', required: true, description: 'The requested provider ID' }, - { name: 'eventCode', required: true, description: 'The requested eventmetadata event code' } -] +EventmetadataUpdateCommand.args = { + providerId: Args.string({ + required: true, + description: 'The requested provider ID' + }), + eventCode: Args.string({ + required: true, + description: 'The requested event code' + }) +} EventmetadataUpdateCommand.flags = { ...BaseCommand.flags, diff --git a/src/commands/event/index.js b/src/commands/event/index.js index a88fcb1..93c67da 100644 --- a/src/commands/event/index.js +++ b/src/commands/event/index.js @@ -22,6 +22,6 @@ class IndexCommand extends BaseCommand { IndexCommand.description = 'Manage your Adobe I/O Events' -IndexCommand.args = [] +IndexCommand.args = {} module.exports = IndexCommand diff --git a/src/commands/event/provider/create.js b/src/commands/event/provider/create.js index 0bee33d..a410df8 100644 --- a/src/commands/event/provider/create.js +++ b/src/commands/event/provider/create.js @@ -11,7 +11,7 @@ governing permissions and limitations under the License. */ const BaseCommand = require('../../../BaseCommand.js') -const { Flags, CliUx: { ux: cli } } = require('@oclif/core') +const { Flags, ux: cli } = require('@oclif/core') const { sentenceValidatorWithMinOneChar, sentenceValidatorWithMinZeroChar } = require('../../../utils/validator') const inquirer = require('inquirer') const aioLogger = require('@adobe/aio-lib-core-logging')('@adobe/aio-cli-plugin-events:provider:create', { provider: 'debug' }) diff --git a/src/commands/event/provider/delete.js b/src/commands/event/provider/delete.js index 8b1abf2..c990776 100644 --- a/src/commands/event/provider/delete.js +++ b/src/commands/event/provider/delete.js @@ -11,7 +11,7 @@ governing permissions and limitations under the License. */ const BaseCommand = require('../../../BaseCommand.js') -const { CliUx: { ux: cli } } = require('@oclif/core') +const { Args, ux: cli } = require('@oclif/core') const inquirer = require('inquirer') const aioLogger = require('@adobe/aio-lib-core-logging')('@adobe/aio-cli-plugin-events:provider:delete', { provider: 'debug' }) @@ -46,9 +46,12 @@ class ProviderDeleteCommand extends BaseCommand { ProviderDeleteCommand.description = 'Delete Provider by id' -ProviderDeleteCommand.args = [ - { name: 'providerId', required: true, description: 'The requested provider ID' } -] +ProviderDeleteCommand.args = { + providerId: Args.string({ + required: true, + description: 'The requested provider ID' + }) +} ProviderDeleteCommand.flags = { ...BaseCommand.flags diff --git a/src/commands/event/provider/get.js b/src/commands/event/provider/get.js index 1232b3d..f1e3323 100644 --- a/src/commands/event/provider/get.js +++ b/src/commands/event/provider/get.js @@ -11,7 +11,7 @@ governing permissions and limitations under the License. */ const BaseCommand = require('../../../BaseCommand.js') -const { Flags, CliUx: { ux: cli } } = require('@oclif/core') +const { Args, Flags, ux: cli } = require('@oclif/core') const aioLogger = require('@adobe/aio-lib-core-logging')('@adobe/aio-cli-plugin-events:provider:get', { provider: 'debug' }) class ProviderGetCommand extends BaseCommand { @@ -41,9 +41,12 @@ class ProviderGetCommand extends BaseCommand { ProviderGetCommand.description = 'Get details of Provider by id' -ProviderGetCommand.args = [ - { name: 'providerId', required: true, description: 'The requested provider ID' } -] +ProviderGetCommand.args = { + providerId: Args.string({ + required: true, + description: 'The requested provider ID' + }) +} ProviderGetCommand.flags = { ...BaseCommand.flags, diff --git a/src/commands/event/provider/list.js b/src/commands/event/provider/list.js index ed51960..a2ea77e 100644 --- a/src/commands/event/provider/list.js +++ b/src/commands/event/provider/list.js @@ -11,7 +11,7 @@ governing permissions and limitations under the License. */ const BaseCommand = require('../../../BaseCommand.js') -const { Flags, CliUx: { ux: cli } } = require('@oclif/core') +const { Flags, ux: cli } = require('@oclif/core') const aioLogger = require('@adobe/aio-lib-core-logging')('@adobe/aio-cli-plugin-events:provider:list', { provider: 'debug' }) class ProviderListCommand extends BaseCommand { diff --git a/src/commands/event/provider/update.js b/src/commands/event/provider/update.js index 2ece2a8..0de2869 100644 --- a/src/commands/event/provider/update.js +++ b/src/commands/event/provider/update.js @@ -11,7 +11,7 @@ governing permissions and limitations under the License. */ const BaseCommand = require('../../../BaseCommand.js') -const { Flags, CliUx: { ux: cli } } = require('@oclif/core') +const { Args, Flags, ux: cli } = require('@oclif/core') const { sentenceValidatorWithMinOneChar, sentenceValidatorWithMinZeroChar } = require('../../../utils/validator') const inquirer = require('inquirer') const aioLogger = require('@adobe/aio-lib-core-logging')('@adobe/aio-cli-plugin-events:provider:update', { provider: 'debug' }) @@ -59,9 +59,12 @@ class ProviderUpdateCommand extends BaseCommand { ProviderUpdateCommand.description = 'Update an existing Provider' -ProviderUpdateCommand.args = [ - { name: 'providerId', required: true, description: 'The requested provider ID' } -] +ProviderUpdateCommand.args = { + providerId: Args.string({ + required: true, + description: 'The requested provider ID' + }) +} ProviderUpdateCommand.flags = { ...BaseCommand.flags, diff --git a/src/commands/event/registration/create.js b/src/commands/event/registration/create.js index b95e57c..9f63662 100644 --- a/src/commands/event/registration/create.js +++ b/src/commands/event/registration/create.js @@ -10,7 +10,7 @@ OF ANY KIND, either express or implied. See the License for the specific languag governing permissions and limitations under the License. */ -const { Flags, CliUx: { ux: cli } } = require('@oclif/core') +const { Args, Flags, ux: cli } = require('@oclif/core') const fs = require('fs') const BaseCommand = require('../../../BaseCommand') @@ -81,9 +81,8 @@ CreateCommand.flags = { }) } -CreateCommand.args = [ - { - name: 'bodyJSONFile', +CreateCommand.args = { + bodyJSONFile: Args.file({ required: true, description: `Path to a file in JSON format with the information to create a new Event Registration. The JSON should follow the following format: @@ -97,7 +96,7 @@ The JSON should follow the following format: "event_code": "" }, { /* ...more events */ }] }` - } -] + }) +} module.exports = CreateCommand diff --git a/src/commands/event/registration/delete.js b/src/commands/event/registration/delete.js index fc0c8cb..282e171 100644 --- a/src/commands/event/registration/delete.js +++ b/src/commands/event/registration/delete.js @@ -11,7 +11,7 @@ governing permissions and limitations under the License. */ const BaseCommand = require('../../../BaseCommand.js') -const { CliUx: { ux: cli } } = require('@oclif/core') +const { Args, ux: cli } = require('@oclif/core') const inquirer = require('inquirer') const aioLogger = require('@adobe/aio-lib-core-logging')('@adobe/aio-cli-plugin-events:registration:delete', { provider: 'debug' }) @@ -50,9 +50,12 @@ DeleteCommand.aliases = [ 'event:reg:delete' ] -DeleteCommand.args = [ - { name: 'registrationId', required: true, description: 'The requested registration ID' } -] +DeleteCommand.args = { + registrationId: Args.string({ + required: true, + description: 'The requested registration ID' + }) +} DeleteCommand.flags = { ...BaseCommand.flags diff --git a/src/commands/event/registration/get.js b/src/commands/event/registration/get.js index c577bc6..afcb5cf 100644 --- a/src/commands/event/registration/get.js +++ b/src/commands/event/registration/get.js @@ -10,7 +10,7 @@ OF ANY KIND, either express or implied. See the License for the specific languag governing permissions and limitations under the License. */ -const { Flags, CliUx: { ux: cli } } = require('@oclif/core') +const { Args, Flags, ux: cli } = require('@oclif/core') const BaseCommand = require('../../../BaseCommand') const aioLogger = require('@adobe/aio-lib-core-logging')('@adobe/aio-cli-plugin-events:registration:get', { provider: 'debug' }) @@ -63,8 +63,11 @@ GetCommand.flags = { }) } -GetCommand.args = [ - { name: 'registrationId', required: true, description: 'The requested registration ID' } -] +GetCommand.args = { + registrationId: Args.string({ + required: true, + description: 'The requested registration ID' + }) +} module.exports = GetCommand diff --git a/src/commands/event/registration/list.js b/src/commands/event/registration/list.js index a471fde..a40b4f5 100644 --- a/src/commands/event/registration/list.js +++ b/src/commands/event/registration/list.js @@ -9,7 +9,7 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ -const { Flags, CliUx: { ux: cli } } = require('@oclif/core') +const { Flags, ux: cli } = require('@oclif/core') const BaseCommand = require('../../../BaseCommand') const aioLogger = require('@adobe/aio-lib-core-logging')('@adobe/aio-cli-plugin-events:registration:list', { provider: 'debug' }) diff --git a/test/commands/event/eventmetadata/create.test.js b/test/commands/event/eventmetadata/create.test.js index 27be3aa..006a361 100644 --- a/test/commands/event/eventmetadata/create.test.js +++ b/test/commands/event/eventmetadata/create.test.js @@ -36,8 +36,8 @@ test('flags', async () => { }) test('args', async () => { - expect(EventmetadataCreateCommand.args[0].required).toBe(true) - expect(EventmetadataCreateCommand.args[0].description).toBeDefined() + expect(EventmetadataCreateCommand.args.providerId.required).toBe(true) + expect(EventmetadataCreateCommand.args.providerId.description).toBeDefined() }) describe('console:eventmetadata:create', () => { diff --git a/test/commands/event/eventmetadata/delete.test.js b/test/commands/event/eventmetadata/delete.test.js index 9a93c82..84aeabc 100644 --- a/test/commands/event/eventmetadata/delete.test.js +++ b/test/commands/event/eventmetadata/delete.test.js @@ -29,16 +29,17 @@ test('flags', async () => { expect(EventmetadataDeleteCommand.flags.verbose.type).toBe('boolean') }) test('args', async () => { - expect(EventmetadataDeleteCommand.args[0].required).toBe(true) - expect(EventmetadataDeleteCommand.args[0].description).toBeDefined() - expect(EventmetadataDeleteCommand.args[1].required).toBe(false) - expect(EventmetadataDeleteCommand.args[1].description).toBeDefined() + expect(EventmetadataDeleteCommand.args.providerId.required).toBe(true) + expect(EventmetadataDeleteCommand.args.providerId.description).toBeDefined() + expect(EventmetadataDeleteCommand.args.eventCode.required).toBe(false) + expect(EventmetadataDeleteCommand.args.eventCode.description).toBeDefined() }) describe('console:eventmetadata:delete', () => { let command beforeEach(async () => { + jest.useRealTimers() command = new EventmetadataDeleteCommand([]) inquirer.prompt = jest.fn() command.conf = { @@ -56,6 +57,8 @@ describe('console:eventmetadata:delete', () => { afterEach(() => { jest.clearAllMocks() + + jest.useFakeTimers() }) test('exists', async () => { diff --git a/test/commands/event/eventmetadata/get.test.js b/test/commands/event/eventmetadata/get.test.js index 6bbc840..e5e344e 100644 --- a/test/commands/event/eventmetadata/get.test.js +++ b/test/commands/event/eventmetadata/get.test.js @@ -35,10 +35,10 @@ test('flags', async () => { }) test('args', async () => { - expect(EventmetadataGetCommand.args[0].required).toBe(true) - expect(EventmetadataGetCommand.args[0].description).toBeDefined() - expect(EventmetadataGetCommand.args[1].required).toBe(true) - expect(EventmetadataGetCommand.args[1].description).toBeDefined() + expect(EventmetadataGetCommand.args.providerId.required).toBe(true) + expect(EventmetadataGetCommand.args.providerId.description).toBeDefined() + expect(EventmetadataGetCommand.args.eventCode.required).toBe(true) + expect(EventmetadataGetCommand.args.eventCode.description).toBeDefined() }) describe('console:eventmetadata:get', () => { diff --git a/test/commands/event/eventmetadata/index.test.js b/test/commands/event/eventmetadata/index.test.js index f1cedcd..38b2232 100644 --- a/test/commands/event/eventmetadata/index.test.js +++ b/test/commands/event/eventmetadata/index.test.js @@ -23,7 +23,7 @@ test('description', async () => { }) test('args', async () => { - expect(IndexCommand.args).toBeUndefined() + expect(IndexCommand.args).toBeDefined() }) test('flags', async () => { diff --git a/test/commands/event/eventmetadata/list.test.js b/test/commands/event/eventmetadata/list.test.js index dfab7f4..0f2c1c9 100644 --- a/test/commands/event/eventmetadata/list.test.js +++ b/test/commands/event/eventmetadata/list.test.js @@ -34,8 +34,8 @@ test('flags', async () => { expect(EventmetadataListCommand.flags.yml.exclusive).toEqual(['json']) }) test('args', async () => { - expect(EventmetadataListCommand.args[0].required).toBe(true) - expect(EventmetadataListCommand.args[0].description).toBeDefined() + expect(EventmetadataListCommand.args.providerId.required).toBe(true) + expect(EventmetadataListCommand.args.providerId.description).toBeDefined() }) describe('console:eventmetadata:list', () => { diff --git a/test/commands/event/eventmetadata/update.test.js b/test/commands/event/eventmetadata/update.test.js index 2393d6d..1382dbf 100644 --- a/test/commands/event/eventmetadata/update.test.js +++ b/test/commands/event/eventmetadata/update.test.js @@ -36,10 +36,10 @@ test('flags', async () => { }) test('args', async () => { - expect(EventmetadataUpdateCommand.args[0].required).toBe(true) - expect(EventmetadataUpdateCommand.args[0].description).toBeDefined() - expect(EventmetadataUpdateCommand.args[1].required).toBe(true) - expect(EventmetadataUpdateCommand.args[1].description).toBeDefined() + expect(EventmetadataUpdateCommand.args.providerId.required).toBe(true) + expect(EventmetadataUpdateCommand.args.providerId.description).toBeDefined() + expect(EventmetadataUpdateCommand.args.eventCode.required).toBe(true) + expect(EventmetadataUpdateCommand.args.eventCode.description).toBeDefined() }) describe('console:eventmetadata:update', () => { diff --git a/test/commands/event/index.test.js b/test/commands/event/index.test.js index 0956009..2482ee1 100644 --- a/test/commands/event/index.test.js +++ b/test/commands/event/index.test.js @@ -23,7 +23,7 @@ test('description', async () => { }) test('args', async () => { - expect(IndexCommand.args).toEqual([]) + expect(IndexCommand.args).toEqual({}) }) test('flags', async () => { diff --git a/test/commands/event/provider/create.test.js b/test/commands/event/provider/create.test.js index d295753..7879f5b 100644 --- a/test/commands/event/provider/create.test.js +++ b/test/commands/event/provider/create.test.js @@ -36,7 +36,7 @@ test('flags', async () => { }) test('args', async () => { - expect(ProviderCreateCommand.args).toBeUndefined() + expect(ProviderCreateCommand.args).toBeDefined() }) describe('console:provider:create', () => { diff --git a/test/commands/event/provider/delete.test.js b/test/commands/event/provider/delete.test.js index dc7896f..764e1f3 100644 --- a/test/commands/event/provider/delete.test.js +++ b/test/commands/event/provider/delete.test.js @@ -30,8 +30,8 @@ test('flags', async () => { }) test('args', async () => { - expect(ProviderDeleteCommand.args[0].required).toBe(true) - expect(ProviderDeleteCommand.args[0].description).toBeDefined() + expect(ProviderDeleteCommand.args.providerId.required).toBe(true) + expect(ProviderDeleteCommand.args.providerId.description).toBeDefined() }) describe('console:provider:delete', () => { diff --git a/test/commands/event/provider/get.test.js b/test/commands/event/provider/get.test.js index 4734bdb..2548bb7 100644 --- a/test/commands/event/provider/get.test.js +++ b/test/commands/event/provider/get.test.js @@ -36,8 +36,8 @@ test('flags', async () => { }) test('args', async () => { - expect(ProviderGetCommand.args[0].required).toBe(true) - expect(ProviderGetCommand.args[0].description).toBeDefined() + expect(ProviderGetCommand.args.providerId.required).toBe(true) + expect(ProviderGetCommand.args.providerId.description).toBeDefined() }) describe('console:provider:get', () => { diff --git a/test/commands/event/provider/index.test.js b/test/commands/event/provider/index.test.js index eb9635b..a9a6531 100644 --- a/test/commands/event/provider/index.test.js +++ b/test/commands/event/provider/index.test.js @@ -23,7 +23,7 @@ test('description', async () => { }) test('args', async () => { - expect(IndexCommand.args).toBeUndefined() + expect(IndexCommand.args).toBeDefined() }) test('flags', async () => { diff --git a/test/commands/event/provider/list.test.js b/test/commands/event/provider/list.test.js index 960af45..96bc0cd 100644 --- a/test/commands/event/provider/list.test.js +++ b/test/commands/event/provider/list.test.js @@ -37,7 +37,7 @@ test('flags', async () => { }) test('args', async () => { - expect(ProviderListCommand.args).toBeUndefined() + expect(ProviderListCommand.args).toBeDefined() }) describe('console:provider:list', () => { diff --git a/test/commands/event/provider/update.test.js b/test/commands/event/provider/update.test.js index 564c2d8..45d107f 100644 --- a/test/commands/event/provider/update.test.js +++ b/test/commands/event/provider/update.test.js @@ -36,8 +36,8 @@ test('flags', async () => { }) test('args', async () => { - expect(ProviderUpdateCommand.args[0].required).toBe(true) - expect(ProviderUpdateCommand.args[0].description).toBeDefined() + expect(ProviderUpdateCommand.args.providerId.required).toBe(true) + expect(ProviderUpdateCommand.args.providerId.description).toBeDefined() }) describe('console:provider:update', () => { diff --git a/test/commands/event/registration/create.test.js b/test/commands/event/registration/create.test.js index c1f3eed..1fa4ffb 100644 --- a/test/commands/event/registration/create.test.js +++ b/test/commands/event/registration/create.test.js @@ -38,8 +38,8 @@ test('flags', async () => { }) test('args', async () => { - expect(TheCommand.args[0].required).toBe(true) - expect(TheCommand.args[0].description).toBeDefined() + expect(TheCommand.args.bodyJSONFile.required).toBe(true) + expect(TheCommand.args.bodyJSONFile.description).toBeDefined() }) describe('console:registration:create', () => { diff --git a/test/commands/event/registration/delete.test.js b/test/commands/event/registration/delete.test.js index 10f01e0..ab881df 100644 --- a/test/commands/event/registration/delete.test.js +++ b/test/commands/event/registration/delete.test.js @@ -30,8 +30,8 @@ test('flags', async () => { }) test('args', async () => { - expect(TheCommand.args[0].required).toBe(true) - expect(TheCommand.args[0].description).toBeDefined() + expect(TheCommand.args.registrationId.required).toBe(true) + expect(TheCommand.args.registrationId.description).toBeDefined() }) describe('console:registration:delete', () => { diff --git a/test/commands/event/registration/get.test.js b/test/commands/event/registration/get.test.js index 2dfc291..6e9d293 100644 --- a/test/commands/event/registration/get.test.js +++ b/test/commands/event/registration/get.test.js @@ -35,8 +35,8 @@ test('flags', async () => { }) test('args', async () => { - expect(TheCommand.args[0].required).toBe(true) - expect(TheCommand.args[0].description).toBeDefined() + expect(TheCommand.args.registrationId.required).toBe(true) + expect(TheCommand.args.registrationId.description).toBeDefined() }) describe('console:registration:get', () => { diff --git a/test/commands/event/registration/index.test.js b/test/commands/event/registration/index.test.js index f7b23b0..df49079 100644 --- a/test/commands/event/registration/index.test.js +++ b/test/commands/event/registration/index.test.js @@ -23,7 +23,7 @@ test('description', async () => { }) test('args', async () => { - expect(IndexCommand.args).toBeUndefined() + expect(IndexCommand.args).toBeDefined() }) test('flags', async () => { diff --git a/test/commands/event/registration/list.test.js b/test/commands/event/registration/list.test.js index 5b9f4ae..b56bbe6 100644 --- a/test/commands/event/registration/list.test.js +++ b/test/commands/event/registration/list.test.js @@ -35,7 +35,7 @@ test('flags', async () => { }) test('args', async () => { - expect(TheCommand.args).toBeUndefined() + expect(TheCommand.args).toBeDefined() }) describe('console:registration:list', () => { diff --git a/test/jest.setup.js b/test/jest.setup.js index e53602a..f6da9f9 100644 --- a/test/jest.setup.js +++ b/test/jest.setup.js @@ -10,6 +10,85 @@ OF ANY KIND, either express or implied. See the License for the specific languag governing permissions and limitations under the License. */ +jest.mock('@oclif/core/lib/cli-ux/config', () => ({ + fetch: jest.fn(() => Promise.resolve('{}')), + get: jest.fn(() => ({})), + set: jest.fn(), + clear: jest.fn() +})) + +jest.mock('@oclif/core/lib/util', () => { + const actual = jest.requireActual('@oclif/core/lib/util') + return { + ...actual, + requireJson: jest.fn((path) => { + try { + return actual.requireJson(path) + } catch (e) { + return {} + } + }) + } +}) + +const mockUx = { + action: { + start: jest.fn(), + stop: jest.fn() + }, + table: jest.fn((data, columns, options) => { + const printLine = options?.printLine || console.log.bind(console) + const headerKeys = Object.keys(columns) + + const colWidths = headerKeys.map(key => { + const col = columns[key] + const header = col.header || key.toUpperCase() + let maxWidth = col.minWidth || header.length + + if (header.length > maxWidth) maxWidth = header.length + data.forEach(row => { + const strValue = String(row[key] ?? '') + if (strValue.length > maxWidth) maxWidth = strValue.length + }) + + const isLastColumn = headerKeys.indexOf(key) === headerKeys.length - 1 + if (col.minWidth && maxWidth === col.minWidth && !isLastColumn) { + maxWidth-- + } + return maxWidth + }) + + const headers = headerKeys.map((key, idx) => + (columns[key].header || key.toUpperCase()).padEnd(colWidths[idx], ' ') + ) + printLine(' ' + headers.join(' ') + ' ') + + const separator = colWidths.map(w => '─'.repeat(w)).join(' ') + printLine(' ' + separator + ' ') + + data.forEach(row => { + const values = headerKeys.map((key, idx) => + String(row[key] ?? '').padEnd(colWidths[idx], ' ') + ) + printLine(' ' + values.join(' ') + ' ') + }) + }) +} + +jest.mock('@oclif/core', () => { + const actual = jest.requireActual('@oclif/core') + return { + ...actual, + ux: mockUx + } +}) + +jest.mock('@oclif/core/lib/cli-ux', () => ({ + ux: mockUx, + cli: mockUx, + default: mockUx +})) + const { stdout, stderr } = require('stdout-stderr') const fs = jest.requireActual('fs') const eol = require('eol')