From 04deb8960c90f0104b5b5b4ff4e43f5b72e0ccda Mon Sep 17 00:00:00 2001 From: Philipp Kunz Date: Wed, 3 Aug 2022 18:47:35 +0200 Subject: [PATCH] fix(core): update --- test/test.ts | 33 ++++++++++++++++----------------- ts/00_commitinfo_data.ts | 2 +- ts/smartcli.classes.smartcli.ts | 21 ++++----------------- 3 files changed, 21 insertions(+), 35 deletions(-) diff --git a/test/test.ts b/test/test.ts index 01fd0ab..689b5a4 100644 --- a/test/test.ts +++ b/test/test.ts @@ -3,41 +3,40 @@ import { Subject } from 'rxjs'; import * as smartcli from '../ts/index.js'; -let smartCliTestObject: smartcli.Smartcli; - tap.test('should create a new Smartcli', async () => { - smartCliTestObject = new smartcli.Smartcli(); + const smartCliTestObject = new smartcli.Smartcli(); expect(smartCliTestObject).toBeInstanceOf(smartcli.Smartcli); }); -tap.test('should add an command', async () => { - expect(smartCliTestObject.addCommand('awesome')).toBeInstanceOf(Subject); +tap.test('should add an command', async (toolsArg) => { + const done = toolsArg.defer(); + const smartCliTestObject = new smartcli.Smartcli(); + const awesomeCommandSubject = smartCliTestObject.addCommand('awesome') + expect(awesomeCommandSubject).toBeInstanceOf(Subject); + awesomeCommandSubject.subscribe(() => { + done.resolve(); + }); + console.log(process.argv); + process.argv.splice(2, 0, 'awesome'); + console.log(process.argv); + smartCliTestObject.startParse(); + await done.promise; }); tap.test('should start parsing a standardTask', async () => { + const smartCliTestObject = new smartcli.Smartcli(); expect(smartCliTestObject.standardCommand()).toBeInstanceOf(Subject); }); let hasExecuted: boolean = false; tap.test('should accept a command', async () => { + const smartCliTestObject = new smartcli.Smartcli(); smartCliTestObject.addCommand('triggerme').subscribe(() => { hasExecuted = true; }); -}); - -tap.test('should not have executed yet', async () => { - expect(hasExecuted).toBeFalse(); -}); - -tap.test('should execute when triggered', async () => { smartCliTestObject.triggerCommand('triggerme', {}); expect(hasExecuted).toBeTrue(); }); -tap.test('should start parsing the CLI input', async () => { - smartCliTestObject.startParse(); - expect(smartCliTestObject.parseCompleted.promise).toBeInstanceOf(Promise); -}); - tap.start(); diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index b1d4f73..12dc011 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@pushrocks/smartcli', - version: '4.0.1', + version: '4.0.2', description: 'easy observable cli tasks' } diff --git a/ts/smartcli.classes.smartcli.ts b/ts/smartcli.classes.smartcli.ts index 0ae593c..fda9297 100644 --- a/ts/smartcli.classes.smartcli.ts +++ b/ts/smartcli.classes.smartcli.ts @@ -18,7 +18,6 @@ export class Smartcli { public parseCompleted = plugins.smartpromise.defer(); public version: string; - private checkForEnvCliCall = true; /** * map of all Trigger/Observable objects to keep track @@ -35,13 +34,6 @@ export class Smartcli { */ constructor() {} - /** - * halts any execution of commands if (process.env.CLI_CALL === false) - */ - disableEnvCliCall() { - this.checkForEnvCliCall = false; - } - /** * adds an alias, meaning one equals the other in terms of command execution. */ @@ -123,19 +115,12 @@ export class Smartcli { * start the process of evaluating commands */ public startParse(): void { - // if we check for cli env calls, we might want to abort here. - if (!process.env.CLI_CALL && this.checkForEnvCliCall) { - console.log( - `note: @pushrocks/smartcli: You called .startParse() on a SmartCli instance. However process.env.CLI_CALL being absent prevented parsing.` - ); - return; - } const parsedYArgs = plugins.yargsParser(process.argv); // lets handle commands let counter = 0; let foundCommand = false; - parsedYArgs._.map((commandPartArg) => { + parsedYArgs._ = parsedYArgs._.filter((commandPartArg) => { counter++; if (typeof commandPartArg === 'number') { return true; @@ -149,7 +134,8 @@ export class Smartcli { } }); for (const command of this.commandObservableMap.getArray()) { - if (!parsedYArgs._[0]) { + const wantedCommand = parsedYArgs._[0]; + if (!wantedCommand) { const standardCommand = this.commandObservableMap.findSync((commandArg) => { return commandArg.commandName === 'standardCommand'; }); @@ -160,6 +146,7 @@ export class Smartcli { } break; } + console.log(`Wanted command: ${wantedCommand}`); if (command.commandName === parsedYArgs._[0]) { command.subject.next(parsedYArgs); break;