Skip to content

Commit f3476dd

Browse files
committed
give cf-env module an interface similar to logger
1 parent 32dfa38 commit f3476dd

File tree

9 files changed

+37
-15
lines changed

9 files changed

+37
-15
lines changed

src/feature-toggles.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ const VError = require("verror");
1919
const yaml = require("yaml");
2020
const redis = require("./redis-wrapper");
2121
const { REDIS_INTEGRATION_MODE } = redis;
22-
const cfEnv = require("./shared/cf-env");
22+
const { CfEnv } = require("./shared/cf-env");
2323
const { Logger } = require("./shared/logger");
2424
const { HandlerCollection } = require("./shared/handler-collection");
2525
const { LimitedLazyCache } = require("./shared/cache");
@@ -113,6 +113,7 @@ const SCOPE_PREFERENCE_ORDER_MASKS = [
113113
];
114114

115115
const readFileAsync = promisify(readFile);
116+
const cfEnv = CfEnv.getInstance();
116117
let logger = new Logger(COMPONENT_NAME);
117118

118119
/**

src/redis-wrapper.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
const redis = require("redis");
1010
const VError = require("verror");
11-
const cfEnv = require("./shared/cf-env");
11+
const { CfEnv } = require("./shared/cf-env");
1212
const { Logger } = require("./shared/logger");
1313
const { HandlerCollection } = require("./shared/handler-collection");
1414
const { Semaphore } = require("./shared/semaphore");
@@ -25,6 +25,7 @@ const INTEGRATION_MODE = Object.freeze({
2525
});
2626
const CF_REDIS_SERVICE_LABEL = "redis-cache";
2727

28+
const cfEnv = CfEnv.getInstance();
2829
const logger = new Logger(COMPONENT_NAME);
2930

3031
const MODE = Object.freeze({

src/shared/cf-env.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,4 +62,7 @@ class CfEnv {
6262
}
6363
}
6464

65-
module.exports = CfEnv.getInstance();
65+
module.exports = {
66+
ENV,
67+
CfEnv,
68+
};

src/shared/logger.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22
const util = require("util");
33
const VError = require("verror");
44

5-
const cfEnv = require("./cf-env");
5+
const { CfEnv } = require("./cf-env");
66
const { tryRequire } = require("./static");
77
const cds = tryRequire("@sap/cds");
8+
const cfEnv = CfEnv.getInstance();
89

910
const ENV = Object.freeze({
1011
LOG_LEVEL: "BTP_FEATURES_LOG_LEVEL",
@@ -254,6 +255,5 @@ module.exports = {
254255
ENV,
255256
LEVEL,
256257
FORMAT,
257-
258258
Logger,
259259
};

test/__mocks__/cf-env.js

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,26 @@
11
"use strict";
22

3-
const cfEnv = {
3+
class CfEnvMock {
44
_reset() {
55
this.isOnCf = false;
66
this.cfApp = {};
77
this.cfServices = {};
8-
this.cfServiceCredentialsForLabel = jest.fn().mockReturnValue({});
9-
},
10-
};
11-
cfEnv._reset();
8+
}
9+
10+
constructor() {
11+
this._reset();
12+
}
13+
14+
cfServiceCredentialsForLabel = jest.fn().mockReturnValue({});
1215

13-
module.exports = cfEnv;
16+
static getInstance() {
17+
if (!CfEnvMock.__instance) {
18+
CfEnvMock.__instance = new CfEnvMock();
19+
}
20+
return CfEnvMock.__instance;
21+
}
22+
}
23+
24+
module.exports = {
25+
CfEnv: CfEnvMock,
26+
};

test/feature-toggles.test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ jest.mock("fs", () => ({
2121
access: jest.fn((cb) => cb()),
2222
}));
2323

24-
const envMock = require("../src/shared/cf-env");
24+
const { CfEnv } = require("../src/shared/cf-env");
25+
const envMock = CfEnv.getInstance();
2526
jest.mock("../src/shared/cf-env", () => require("./__mocks__/cf-env"));
2627

2728
const redisWrapperMock = require("../src/redis-wrapper");

test/redis-wrapper.test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
"use strict";
22

3-
const envMock = require("../src/shared/cf-env");
3+
const { CfEnv } = require("../src/shared/cf-env");
4+
const envMock = CfEnv.getInstance();
45
jest.mock("../src/shared/cf-env", () => require("./__mocks__/cf-env"));
56

67
const mockMessageHandler = jest.fn();
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,8 @@ describe("cfenv test", () => {
108108
backupCfServicesEnv = process.env.VCAP_SERVICES;
109109
process.env.VCAP_APPLICATION = JSON.stringify(mockCfAppEnv);
110110
process.env.VCAP_SERVICES = JSON.stringify(mockCfServicesEnv);
111-
cfEnv = require("../../src/shared/cf-env");
111+
const { CfEnv } = require("../../src/shared/cf-env");
112+
cfEnv = CfEnv.getInstance();
112113
});
113114

114115
afterAll(() => {

test/shared/logger.test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ const { ENV, LEVEL, FORMAT, Logger } = require("../../src/shared/logger");
88
const redisWrapperMock = require("../../src/redis-wrapper");
99
jest.mock("../../src/redis-wrapper", () => require("../__mocks__/redis-wrapper"));
1010

11-
const envMock = require("../../src/shared/cf-env");
11+
const { CfEnv } = require("../../src/shared/cf-env");
12+
const envMock = CfEnv.getInstance();
1213
jest.mock("../../src/shared/cf-env", () => require("../__mocks__/cf-env"));
1314

1415
const { FEATURE, mockConfig, redisKey, redisChannel, refreshMessage } = require("../__common__/mockdata");

0 commit comments

Comments
 (0)