Skip to content

Commit bf3c4db

Browse files
committed
feat: add ui5 middleware code coverage
Allows client side code coverage generation for ES6+ code powered by https://github.com/SAP/ui5-tooling-extensions/tree/main/packages/middleware-code-coverage. Projects generated for UI5 versions before 1.113.0 will stick to old "Blanket.js" based code coverage determination limited to ES5 language specification. JIRA: CPOUI5FOUNDATION-721
1 parent 97d0688 commit bf3c4db

File tree

5 files changed

+14
-0
lines changed

5 files changed

+14
-0
lines changed

generators/app/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,7 @@ export default class extends Generator {
189189
devDependencies: {
190190
shx: "^0.3.4",
191191
"@ui5/cli": "^3",
192+
"@ui5/middleware-code-coverage": "latest",
192193
"ui5-middleware-livereload": "latest",
193194
karma: "^6.4.2",
194195
"karma-chrome-launcher": "^3.2.0",

generators/newwebapp/templates/uimodule/ui5.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ server:
1818
customMiddleware:
1919
- name: ui5-middleware-livereload
2020
afterMiddleware: compression
21+
- name: "@ui5/middleware-code-coverage"
22+
afterMiddleware: compression
2123
<% if(platform !== 'Static webserver' && platform !== 'SAP NetWeaver'){ -%>
2224
- name: ui5-middleware-cfdestination
2325
afterMiddleware: compression

generators/qunit/index.js

+9
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import Generator from "yeoman-generator";
2+
import semver from "semver";
23
import jsUtils from "../../helpers/jsutils.js";
34
import path from "path";
45
import glob from "glob";
@@ -152,6 +153,14 @@ export default class extends Generator {
152153
this.config.set("qunittests", tests);
153154
this.options.oneTimeConfig.qunittests = tests;
154155

156+
// set qunit coverage file
157+
if (semver.gte(props.frameworkVersion, "1.113.0")) {
158+
this.config.set("qunitCoverageFile", "qunit-coverage-istanbul.js");
159+
} else {
160+
this.config.set("qunitCoverageFile", "qunit-coverage.js");
161+
}
162+
this.options.oneTimeConfig.qunitCoverageFile = this.config.get("qunitCoverageFile");
163+
155164
const sModule =
156165
(this.options.oneTimeConfig.modulename ? this.options.oneTimeConfig.modulename + "/" : "") + "webapp/";
157166

generators/qunit/templates/test/unit/unitTests.qunit.html

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
<script src="<%=ui5libsprefix%>resources/sap/ui/thirdparty/qunit-2.js"></script>
2020
<script src="<%=ui5libsprefix%>resources/sap/ui/qunit/qunit-junit.js"></script>
21+
<script src="<%=ui5libsprefix%>resources/sap/ui/qunit/<%=qunitCoverageFile%>"></script>
2122

2223
<script src="unitTests.qunit.js"></script>
2324
</head>

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
"directory-tree": "^3.0.1",
4141
"glob": "^7.2.0",
4242
"object-assign-deep": "^0.4.0",
43+
"semver": "^7.5.4",
4344
"valid-filename": "^4.0.0",
4445
"yaml": "^2.2.2",
4546
"yeoman-environment": "^3.16.2",

0 commit comments

Comments
 (0)