Skip to content

Commit 04d267e

Browse files
committed
test(middleware-code-coverage): verify package.json is only read once
1 parent e59e921 commit 04d267e

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

packages/middleware-code-coverage/test/unit/lib/middleware.js

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,7 @@
11
import test from "ava";
22
import sinon from "sinon";
3-
import {createRequire} from "node:module";
43
import esmock from "esmock";
54

6-
// Using CommonsJS require as importing json files causes an ExperimentalWarning
7-
const require = createRequire(import.meta.url);
8-
const packageJson = require("../../../package.json");
9-
105
const sampleJS = `sap.ui.define([
116
"sap/ui/core/mvc/Controller",
127
"sap/m/MessageToast"
@@ -49,21 +44,30 @@ const middlewareUtil = {
4944
};
5045

5146
test.beforeEach(async (t) => {
52-
t.context.instrumenterMiddleware = await esmock("../../../lib/middleware.js");
47+
t.context.readJsonFile = sinon.stub().resolves({version: "0.0.0-test"});
48+
t.context.instrumenterMiddleware = await esmock("../../../lib/middleware.js", {
49+
"../../../lib/util.js": {
50+
readJsonFile: t.context.readJsonFile
51+
}
52+
});
5353
});
5454

5555
test("Ping request", async (t) => {
56-
const {instrumenterMiddleware} = t.context;
56+
const {instrumenterMiddleware, readJsonFile} = t.context;
5757
const middleware = await instrumenterMiddleware({resources});
5858

59-
t.plan(3);
59+
t.plan(6);
60+
61+
t.is(readJsonFile.callCount, 1, "package.json should be read once during middleware initialization");
62+
t.deepEqual(readJsonFile.getCall(0).args, [new URL("../../../package.json", import.meta.url)]);
6063

6164
await new Promise((resolve) => {
6265
const res = {
6366
json: function(body) {
6467
t.is(Object.keys(body).length, 1);
6568
t.is(Object.keys(body)[0], "version");
66-
t.is(body.version, packageJson.version, "The version is returned");
69+
t.is(body.version, "0.0.0-test", "The version is returned");
70+
t.is(readJsonFile.callCount, 1, "package.json should not be read again per request");
6771
resolve();
6872
}
6973
};

0 commit comments

Comments
 (0)