Skip to content

Commit

Permalink
[FIX] ui5Framework: Skip processing of framework libs (#424)
Browse files Browse the repository at this point in the history
- Framework dependencies of OpenUI5 / SAPUI5 libraries are currently ignored anyways (as getFrameworkLibrariesFromTree always returns an empty array). This means that regardless of the existence of a framework version, all UI5 framework translator related steps can be skipped.
- This allows execution of "ui5 build" for SAPUI5 framework projects, which previously failed due to the missing version. It might still fail in case no dependencies are provided by other means (npm/static translator).

JIRA: CPOUI5FOUNDATION-352
JIRA: CPOUI5FOUNDATION-397
  • Loading branch information
matz3 authored Oct 7, 2021
1 parent 377484e commit 539d953
Show file tree
Hide file tree
Showing 2 changed files with 81 additions and 0 deletions.
7 changes: 7 additions & 0 deletions lib/translators/ui5Framework.js
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,13 @@ module.exports = {
return null;
}

// Ignoring UI5 Framework libraries
if (utils.isFrameworkProject(tree)) {
log.verbose(`UI5 framework dependency resolution is currently not supported ` +
`for framework libraries. Skipping project "${tree.id}"`);
return null;
}

const frameworkName = tree.framework.name;
if (frameworkName !== "SAPUI5" && frameworkName !== "OpenUI5") {
throw new Error(
Expand Down
74 changes: 74 additions & 0 deletions test/lib/translators/ui5Framework.js
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,46 @@ test.serial("generateDependencyTree should throw error when no framework version
}, {message: "framework.version is not defined for project test-id"});
});

test.serial("generateDependencyTree should skip framework project without version", async (t) => {
const tree = {
id: "@sapui5/project",
version: "1.2.3",
path: "/sapui5-project/",
metadata: {
name: "sapui5.project"
},
framework: {
name: "SAPUI5"
}
};

const result = await ui5Framework.generateDependencyTree(tree);
t.is(result, null, "Framework projects should be skipped");
});

test.serial("generateDependencyTree should skip framework project with version and framework config", async (t) => {
const tree = {
id: "@sapui5/project",
version: "1.2.3",
path: "/sapui5-project/",
metadata: {
name: "sapui5.project"
},
framework: {
name: "SAPUI5",
version: "1.2.3",
libraries: [
{
name: "lib1"
}
]
}
};

const result = await ui5Framework.generateDependencyTree(tree);
t.is(result, null, "Framework projects should be skipped");
});

test.serial("generateDependencyTree should ignore root project without framework configuration", async (t) => {
const tree = {
id: "test-id",
Expand Down Expand Up @@ -229,6 +269,40 @@ test.serial("utils.getFrameworkLibrariesFromTree: Project without dependencies",
t.deepEqual(ui5Dependencies, []);
});

test.serial("utils.getFrameworkLibrariesFromTree: Framework project", (t) => {
const tree = {
id: "@sapui5/project",
metadata: {
name: "project"
},
framework: {
libraries: [
{
name: "lib1"
}
]
},
dependencies: [
{
id: "test1",
specVersion: "2.0",
metadata: {
name: "test1"
},
framework: {
libraries: [
{
name: "lib2"
}
]
}
}
]
};
const ui5Dependencies = utils.getFrameworkLibrariesFromTree(tree);
t.deepEqual(ui5Dependencies, []); // Framework projects should be skipped
});

test.serial("utils.getFrameworkLibrariesFromTree: Project with libraries and dependency with libraries", (t) => {
const tree = {
id: "test1",
Expand Down

0 comments on commit 539d953

Please sign in to comment.