Skip to content

Commit e4bb108

Browse files
committed
[BREAKING] Run 'generateThemeDesignerResources' only on framework libs
The generateThemeDesignerResources task is currently only relevant for framework libraries as those libraries are supported by SAP Theme Designer. Other libraries are not expected to require the task, so it is skipped.
1 parent 5498481 commit e4bb108

File tree

5 files changed

+104
-40
lines changed

5 files changed

+104
-40
lines changed

lib/build/definitions/library.js

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -146,12 +146,14 @@ export default function({project, taskUtil, getTask}) {
146146
}
147147
});
148148

149-
tasks.set("generateThemeDesignerResources", {
150-
requiresDependencies: true,
151-
options: {
152-
version: project.getVersion()
153-
}
154-
});
149+
if (project.isFrameworkProject()) {
150+
tasks.set("generateThemeDesignerResources", {
151+
requiresDependencies: true,
152+
options: {
153+
version: project.getVersion()
154+
}
155+
});
156+
}
155157

156158
tasks.set("generateResourcesJson", {
157159
requiresDependencies: true

lib/build/definitions/themeLibrary.js

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,14 @@ export default function({project, taskUtil, getTask}) {
3535
}
3636
});
3737

38-
tasks.set("generateThemeDesignerResources", {
39-
requiresDependencies: true,
40-
options: {
41-
version: project.getVersion()
42-
}
43-
});
38+
if (project.isFrameworkProject()) {
39+
tasks.set("generateThemeDesignerResources", {
40+
requiresDependencies: true,
41+
options: {
42+
version: project.getVersion()
43+
}
44+
});
45+
}
4446

4547
tasks.set("generateResourcesJson", {requiresDependencies: true});
4648
return tasks;

test/lib/build/TaskRunner.js

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,8 @@ function getMockProject(type) {
5858
getCachebusterSignatureType: noop,
5959
getCustomTasks: () => [],
6060
hasBuildManifest: () => false,
61-
getWorkspace: () => "workspace"
61+
getWorkspace: () => "workspace",
62+
isFrameworkProject: () => false
6263
};
6364
}
6465

@@ -224,6 +225,34 @@ test("_initTasks: Project of type 'library'", async (t) => {
224225
});
225226
await taskRunner._initTasks();
226227

228+
t.deepEqual(taskRunner._taskExecutionOrder, [
229+
"escapeNonAsciiCharacters",
230+
"replaceCopyright",
231+
"replaceVersion",
232+
"replaceBuildtime",
233+
"generateJsdoc",
234+
"executeJsdocSdkTransformation",
235+
"minify",
236+
"generateLibraryManifest",
237+
"generateComponentPreload",
238+
"generateLibraryPreload",
239+
"generateBundle",
240+
"buildThemes",
241+
"generateResourcesJson"
242+
], "Correct standard tasks");
243+
});
244+
245+
test("_initTasks: Project of type 'library' (framework project)", async (t) => {
246+
const {graph, taskUtil, taskRepository, TaskRunner} = t.context;
247+
248+
const project = getMockProject("library");
249+
project.isFrameworkProject = () => true;
250+
251+
const taskRunner = new TaskRunner({
252+
project, graph, taskUtil, taskRepository, log, buildConfig
253+
});
254+
await taskRunner._initTasks();
255+
227256
t.deepEqual(taskRunner._taskExecutionOrder, [
228257
"escapeNonAsciiCharacters",
229258
"replaceCopyright",
@@ -249,6 +278,25 @@ test("_initTasks: Project of type 'theme-library'", async (t) => {
249278
});
250279
await taskRunner._initTasks();
251280

281+
t.deepEqual(taskRunner._taskExecutionOrder, [
282+
"replaceCopyright",
283+
"replaceVersion",
284+
"buildThemes",
285+
"generateResourcesJson"
286+
], "Correct standard tasks");
287+
});
288+
289+
test("_initTasks: Project of type 'theme-library' (framework project)", async (t) => {
290+
const {graph, taskUtil, taskRepository, TaskRunner} = t.context;
291+
292+
const project = getMockProject("theme-library");
293+
project.isFrameworkProject = () => true;
294+
295+
const taskRunner = new TaskRunner({
296+
project, graph, taskUtil, taskRepository, log, buildConfig
297+
});
298+
await taskRunner._initTasks();
299+
252300
t.deepEqual(taskRunner._taskExecutionOrder, [
253301
"replaceCopyright",
254302
"replaceVersion",

test/lib/build/definitions/library.js

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ function getMockProject() {
2929
getCachebusterSignatureType: () => "PONY",
3030
getJsdocExcludes: () => [],
3131
getCustomTasks: emptyarray,
32+
isFrameworkProject: () => false
3233
};
3334
}
3435

@@ -113,11 +114,6 @@ test("Standard build", async (t) => {
113114
cssVariables: undefined
114115
}
115116
},
116-
generateThemeDesignerResources: {
117-
requiresDependencies: true, options: {
118-
version: "version"
119-
}
120-
},
121117
generateResourcesJson: {
122118
requiresDependencies: true
123119
}
@@ -154,6 +150,27 @@ test("Standard build", async (t) => {
154150
"taskUtil#getBuildOption got called with correct argument");
155151
});
156152

153+
test("Standard build (framework project)", (t) => {
154+
const {project, taskUtil, getTask} = t.context;
155+
156+
project.isFrameworkProject = () => true;
157+
158+
const generateJsdocTaskStub = sinon.stub();
159+
getTask.returns({
160+
task: generateJsdocTaskStub
161+
});
162+
163+
const tasks = library({
164+
project, taskUtil, getTask
165+
});
166+
167+
t.deepEqual(tasks.get("generateThemeDesignerResources"), {
168+
requiresDependencies: true, options: {
169+
version: "version"
170+
}
171+
});
172+
});
173+
157174
test("Standard build with legacy spec version", (t) => {
158175
const {project, taskUtil, getTask} = t.context;
159176
project.getSpecVersion = () => {
@@ -224,11 +241,6 @@ test("Standard build with legacy spec version", (t) => {
224241
cssVariables: undefined
225242
}
226243
},
227-
generateThemeDesignerResources: {
228-
requiresDependencies: true, options: {
229-
version: "version"
230-
}
231-
},
232244
generateResourcesJson: {
233245
requiresDependencies: true
234246
}
@@ -349,11 +361,6 @@ test("Custom bundles", async (t) => {
349361
cssVariables: undefined
350362
}
351363
},
352-
generateThemeDesignerResources: {
353-
requiresDependencies: true, options: {
354-
version: "version"
355-
}
356-
},
357364
generateResourcesJson: {
358365
requiresDependencies: true
359366
}

test/lib/build/definitions/themeLibrary.js

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ function getMockProject() {
2626
getBundles: emptyarray,
2727
getCachebusterSignatureType: () => "PONY",
2828
getCustomTasks: emptyarray,
29+
isFrameworkProject: () => false
2930
};
3031
}
3132

@@ -69,12 +70,6 @@ test("Standard build", (t) => {
6970
cssVariables: undefined
7071
}
7172
},
72-
generateThemeDesignerResources: {
73-
requiresDependencies: true,
74-
options: {
75-
version: "version"
76-
}
77-
},
7873
generateResourcesJson: {
7974
requiresDependencies: true
8075
}
@@ -85,6 +80,22 @@ test("Standard build", (t) => {
8580
"taskUtil#getBuildOption got called with correct argument");
8681
});
8782

83+
test("Standard build (framework project)", (t) => {
84+
const {project, taskUtil, getTask} = t.context;
85+
86+
project.isFrameworkProject = () => true;
87+
88+
const tasks = themeLibrary({
89+
project, taskUtil, getTask
90+
});
91+
92+
t.deepEqual(tasks.get("generateThemeDesignerResources"), {
93+
requiresDependencies: true, options: {
94+
version: "version"
95+
}
96+
});
97+
});
98+
8899
test("Standard build for non root project", (t) => {
89100
const {project, taskUtil, getTask} = t.context;
90101
taskUtil.isRootProject.returns(false);
@@ -115,12 +126,6 @@ test("Standard build for non root project", (t) => {
115126
cssVariables: undefined
116127
}
117128
},
118-
generateThemeDesignerResources: {
119-
requiresDependencies: true,
120-
options: {
121-
version: "version"
122-
}
123-
},
124129
generateResourcesJson: {
125130
requiresDependencies: true
126131
}

0 commit comments

Comments
 (0)