diff --git a/cmf-cli/Commands/new/iot/GenerateTaskCommand.cs b/cmf-cli/Commands/new/iot/GenerateTaskCommand.cs index c1cef1de2..65885d597 100644 --- a/cmf-cli/Commands/new/iot/GenerateTaskCommand.cs +++ b/cmf-cli/Commands/new/iot/GenerateTaskCommand.cs @@ -150,17 +150,23 @@ private TaskValues HandleTask(TaskValues task) string[] taskLibraryDependsOnProtocols = taskLibraryPkgJson.criticalManufacturing.tasksLibrary.dependsOnProtocol.ToObject(); string[] taskLibraryDependsOnScope = taskLibraryPkgJson.criticalManufacturing.tasksLibrary.dependsOnScope.ToObject(); - task.DependsOnProtocol = AnsiConsole.Prompt( - new MultiSelectionPrompt() - .Title("Is this task specific for any protocol?") - .NotRequired() - .AddChoices(taskLibraryDependsOnProtocols)); - - task.DependsOnScope = AnsiConsole.Prompt( - new MultiSelectionPrompt() - .Title("On which scopes this library can be used") - .NotRequired() - .AddChoices(taskLibraryDependsOnScope)); + if (taskLibraryDependsOnProtocols.Length > 0) + { + task.DependsOnProtocol = AnsiConsole.Prompt( + new MultiSelectionPrompt() + .Title("Is this task specific for any protocol?") + .NotRequired() + .AddChoices(taskLibraryDependsOnProtocols)); + } + + if (taskLibraryDependsOnScope.Length > 0) + { + task.DependsOnScope = AnsiConsole.Prompt( + new MultiSelectionPrompt() + .Title("On which scopes this library can be used") + .NotRequired() + .AddChoices(taskLibraryDependsOnScope)); + } if (ExecutionContext.Instance.ProjectConfig.MESVersion.Major >= 12) { diff --git a/tests/Specs/New.cs b/tests/Specs/New.cs index 6aa8a10b7..5ecb7528f 100644 --- a/tests/Specs/New.cs +++ b/tests/Specs/New.cs @@ -600,8 +600,8 @@ public void IoTTask(string mesVersion, string taskBaseClass) consoleTask.Input.PushTextWithEnter(""); // icon class name (default) consoleTask.Input.PushTextWithEnter(""); // isProtocol: No (default false) consoleTask.Input.PushTextWithEnter(""); // lifecycle: Productive (first selection prompt option) - consoleTask.Input.PushTextWithEnter(""); // dependsOnProtocol (MultiSelect) - consoleTask.Input.PushTextWithEnter(""); // dependsOnScope (MultiSelect, 1 choice "ConnectIoT"): no selection + confirm + // dependsOnProtocol is skipped: task library has no protocols (empty list from library setup) + consoleTask.Input.PushTextWithEnter(""); // dependsOnScope MultiSelect (library has ["ConnectIoT"]): no selection + confirm if (isMesV12) {