From cf532c6846e379a329b1696fedff3cc36979dafa Mon Sep 17 00:00:00 2001 From: Martin Januska Date: Wed, 17 Jul 2024 10:56:38 +0100 Subject: [PATCH 1/3] feat(backend): remove show done message if no files are generated --- packages/backend/src/yeomanui.ts | 14 ++++++++++++-- packages/backend/test/yeomanui.spec.ts | 6 +++--- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/packages/backend/src/yeomanui.ts b/packages/backend/src/yeomanui.ts index 9a4b321f8..298ce3282 100644 --- a/packages/backend/src/yeomanui.ts +++ b/packages/backend/src/yeomanui.ts @@ -414,6 +414,7 @@ export class YeomanUI { // All the paths here absolute normilized paths. const targetFolderPathBeforeGen: string = _.get(resourcesBeforeGen, "targetFolderPath"); const targetFolderPathAfterGen: string = _.get(resourcesAfterGen, "targetFolderPath"); + const generatedChildDirs = "generatedChildDirs"; if (targetFolderPathBeforeGen === targetFolderPathAfterGen) { const newDirs: string[] = _.difference( _.get(resourcesAfterGen, "childDirs"), @@ -423,7 +424,10 @@ export class YeomanUI { // One folder added by generator and targetFolderPath/destinationRoot was not changed by generator. // ---> Fiori project generator flow. targetFolderPath = newDirs[0]; - } //else { //_.size(newDirs) = 0 (0 folders) or _.size(newDirs) > 1 (5 folders) + } else if (_.size(newDirs) > 1) { + targetFolderPath = generatedChildDirs; + } + //else { //_.size(newDirs) = 0 (0 folders) or _.size(newDirs) > 1 (5 folders) // We don't know what is the correct targetFolderPath ---> no buttons should be shown. // No folder added by generator ---> Fiori module generator flow. // Many folders added by generator ---> @@ -447,7 +451,13 @@ export class YeomanUI { const generatedTemplatePath = targetFolderPath ? targetFolderPath : targetFolderPathBeforeGen; this.logger.debug(`done running yeomanui! ${message} You can find it at ${generatedTemplatePath}`); AnalyticsWrapper.updateGeneratorEnded(generatorName); - this.youiEvents.doGeneratorDone(true, message, selectedWorkspace, type, targetFolderPath); + // Checking if targetFolderPath is null or undefined to determine toast message. + // if no files are generated (undefined), messsage is empty + if (_.isNil(targetFolderPath)) { + this.youiEvents.doGeneratorDone(false, "", selectedWorkspace, type, targetFolderPath); + } else { + this.youiEvents.doGeneratorDone(true, message, selectedWorkspace, type, targetFolderPath); + } this.setInitialProcessDir(); this.flowState.resolve(); this.generatorName = ""; // reset generator name diff --git a/packages/backend/test/yeomanui.spec.ts b/packages/backend/test/yeomanui.spec.ts index b2c0a803e..e655242b8 100644 --- a/packages/backend/test/yeomanui.spec.ts +++ b/packages/backend/test/yeomanui.spec.ts @@ -1157,7 +1157,7 @@ describe("yeomanui unit test", () => { _.get(yeomanUi, "uiOptions.messages.artifact_with_name_generated", (a: string) => "")("testGenName"), create_and_close, "files", - null, + "generatedChildDirs", ), ).to.be.true; }); @@ -1175,9 +1175,9 @@ describe("yeomanui unit test", () => { yeomanUi["onGeneratorSuccess"]("testGenName", beforeGen, afterGen); expect( doGeneratorDoneSpy.calledWith( - true, + false, // eslint-disable-next-line @typescript-eslint/no-unused-vars - _.get(yeomanUi, "uiOptions.messages.artifact_with_name_generated", (a: string) => "")("testGenName"), + "", create_and_close, "files", null, From a3fff9a39a2f8d7dcb5958fdf774150b85beb582 Mon Sep 17 00:00:00 2001 From: Martin Januska Date: Wed, 17 Jul 2024 11:09:50 +0100 Subject: [PATCH 2/3] feat(backend): targetFolderPath null for more than 1 dir --- packages/backend/src/yeomanui.ts | 2 ++ packages/backend/test/yeomanui.spec.ts | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/backend/src/yeomanui.ts b/packages/backend/src/yeomanui.ts index 298ce3282..9d2705887 100644 --- a/packages/backend/src/yeomanui.ts +++ b/packages/backend/src/yeomanui.ts @@ -455,6 +455,8 @@ export class YeomanUI { // if no files are generated (undefined), messsage is empty if (_.isNil(targetFolderPath)) { this.youiEvents.doGeneratorDone(false, "", selectedWorkspace, type, targetFolderPath); + } else if (targetFolderPath === generatedChildDirs) { + this.youiEvents.doGeneratorDone(true, message, selectedWorkspace, type, null); } else { this.youiEvents.doGeneratorDone(true, message, selectedWorkspace, type, targetFolderPath); } diff --git a/packages/backend/test/yeomanui.spec.ts b/packages/backend/test/yeomanui.spec.ts index e655242b8..7e011bb90 100644 --- a/packages/backend/test/yeomanui.spec.ts +++ b/packages/backend/test/yeomanui.spec.ts @@ -1157,7 +1157,7 @@ describe("yeomanui unit test", () => { _.get(yeomanUi, "uiOptions.messages.artifact_with_name_generated", (a: string) => "")("testGenName"), create_and_close, "files", - "generatedChildDirs", + null, ), ).to.be.true; }); From 9e761e8483d4e7e03551074bbdc789fc1ee45367 Mon Sep 17 00:00:00 2001 From: Martin Januska Date: Wed, 17 Jul 2024 12:22:21 +0100 Subject: [PATCH 3/3] feat(backend): logic cleanup --- packages/backend/src/yeomanui.ts | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/packages/backend/src/yeomanui.ts b/packages/backend/src/yeomanui.ts index 9d2705887..976239ca6 100644 --- a/packages/backend/src/yeomanui.ts +++ b/packages/backend/src/yeomanui.ts @@ -414,7 +414,7 @@ export class YeomanUI { // All the paths here absolute normilized paths. const targetFolderPathBeforeGen: string = _.get(resourcesBeforeGen, "targetFolderPath"); const targetFolderPathAfterGen: string = _.get(resourcesAfterGen, "targetFolderPath"); - const generatedChildDirs = "generatedChildDirs"; + let hasNewDirs: boolean = true; if (targetFolderPathBeforeGen === targetFolderPathAfterGen) { const newDirs: string[] = _.difference( _.get(resourcesAfterGen, "childDirs"), @@ -424,8 +424,8 @@ export class YeomanUI { // One folder added by generator and targetFolderPath/destinationRoot was not changed by generator. // ---> Fiori project generator flow. targetFolderPath = newDirs[0]; - } else if (_.size(newDirs) > 1) { - targetFolderPath = generatedChildDirs; + } else if (_.size(newDirs) === 0) { + hasNewDirs = false; } //else { //_.size(newDirs) = 0 (0 folders) or _.size(newDirs) > 1 (5 folders) // We don't know what is the correct targetFolderPath ---> no buttons should be shown. @@ -453,10 +453,8 @@ export class YeomanUI { AnalyticsWrapper.updateGeneratorEnded(generatorName); // Checking if targetFolderPath is null or undefined to determine toast message. // if no files are generated (undefined), messsage is empty - if (_.isNil(targetFolderPath)) { + if (!targetFolderPath && !hasNewDirs) { this.youiEvents.doGeneratorDone(false, "", selectedWorkspace, type, targetFolderPath); - } else if (targetFolderPath === generatedChildDirs) { - this.youiEvents.doGeneratorDone(true, message, selectedWorkspace, type, null); } else { this.youiEvents.doGeneratorDone(true, message, selectedWorkspace, type, targetFolderPath); }