|
1 | 1 | import test from "ava";
|
2 | 2 | import sinon from "sinon";
|
3 |
| -import {createRequire} from "node:module"; |
4 | 3 | import esmock from "esmock";
|
5 | 4 |
|
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 |
| - |
10 | 5 | const sampleJS = `sap.ui.define([
|
11 | 6 | "sap/ui/core/mvc/Controller",
|
12 | 7 | "sap/m/MessageToast"
|
@@ -49,21 +44,30 @@ const middlewareUtil = {
|
49 | 44 | };
|
50 | 45 |
|
51 | 46 | 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 | + }); |
53 | 53 | });
|
54 | 54 |
|
55 | 55 | test("Ping request", async (t) => {
|
56 |
| - const {instrumenterMiddleware} = t.context; |
| 56 | + const {instrumenterMiddleware, readJsonFile} = t.context; |
57 | 57 | const middleware = await instrumenterMiddleware({resources});
|
58 | 58 |
|
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)]); |
60 | 63 |
|
61 | 64 | await new Promise((resolve) => {
|
62 | 65 | const res = {
|
63 | 66 | json: function(body) {
|
64 | 67 | t.is(Object.keys(body).length, 1);
|
65 | 68 | 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"); |
67 | 71 | resolve();
|
68 | 72 | }
|
69 | 73 | };
|
|
0 commit comments