diff --git a/lib/cli/commands/use.js b/lib/cli/commands/use.js index 8e9b01ef..25f6f6f5 100644 --- a/lib/cli/commands/use.js +++ b/lib/cli/commands/use.js @@ -19,8 +19,6 @@ useCommand.builder = function(cli) { .example("$0 use openui5", "Use OpenUI5 without a version (or use existing version)"); }; -const versionRegExp = /^(0|[1-9]\d*)\.(0|[1-9]\d*)(?:\.(0|[1-9]\d*))?$/; - function parseFrameworkInfo(frameworkInfo) { const parts = frameworkInfo.split("@"); if (parts.length > 2) { @@ -33,15 +31,15 @@ function parseFrameworkInfo(frameworkInfo) { if (!nameOrVersion) { throw new Error("Invalid framework info: " + frameworkInfo); } - if (nameOrVersion === "latest" || versionRegExp.test(nameOrVersion)) { + if (["sapui5", "openui5"].includes(nameOrVersion.toLowerCase())) { return { - name: null, - version: nameOrVersion + name: nameOrVersion, + version: null }; } else { return { - name: nameOrVersion, - version: null + name: null, + version: nameOrVersion }; } } else { diff --git a/test/lib/cli/commands/use.js b/test/lib/cli/commands/use.js index 54826f99..4fe3f24c 100644 --- a/test/lib/cli/commands/use.js +++ b/test/lib/cli/commands/use.js @@ -98,6 +98,26 @@ test.serial("Accepts framework name and version (OpenUI5@1.76)", async (t) => { }); }); +test.serial("Accepts framework name and version (SAPUI5@1.79.0-SNAPSHOT)", async (t) => { + await assertUseHandler(t, { + argv: {"framework-info": "SAPUI5@1.79.0-SNAPSHOT"}, + expectedFrameworkOptions: { + name: "SAPUI5", + version: "1.79.0-SNAPSHOT" + } + }); +}); + +test.serial("Accepts framework name and version (OpenUI5@1.79.0-SNAPSHOT)", async (t) => { + await assertUseHandler(t, { + argv: {"framework-info": "OpenUI5@1.79.0-SNAPSHOT"}, + expectedFrameworkOptions: { + name: "OpenUI5", + version: "1.79.0-SNAPSHOT" + } + }); +}); + test.serial("Accepts framework name and version (SAPUI5@latest)", async (t) => { await assertUseHandler(t, { argv: {"framework-info": "SAPUI5@latest"},