Skip to content

Commit 7236241

Browse files
authored
go back to exporting classes (#84)
* go back to exporting classes * MockCfEnv can work more like regular CfEnv
1 parent 2e0350d commit 7236241

File tree

10 files changed

+30
-15
lines changed

10 files changed

+30
-15
lines changed

src/feature-toggles.js

Lines changed: 2 additions & 2 deletions
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");
@@ -112,6 +112,7 @@ const SCOPE_PREFERENCE_ORDER_MASKS = [
112112
],
113113
];
114114

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

@@ -1663,7 +1664,6 @@ module.exports = {
16631664
DEFAULT_REDIS_KEY,
16641665
SCOPE_ROOT_KEY,
16651666
FeatureToggles,
1666-
toggles: FeatureToggles.getInstance(),
16671667

16681668
_: {
16691669
CONFIG_KEY,

src/index.js

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

3-
const { toggles } = require("./feature-toggles");
3+
const { FeatureToggles } = require("./feature-toggles");
44

5+
const toggles = FeatureToggles.getInstance();
56
module.exports = toggles;

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: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,5 +64,5 @@ class CfEnv {
6464

6565
module.exports = {
6666
ENV,
67-
cfEnv: CfEnv.getInstance(),
67+
CfEnv,
6868
};

src/shared/logger.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
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");
88

@@ -75,6 +75,7 @@ const FORMAT = Object.freeze({
7575
const MILLIS_IN_NANOS_NUMBER = 1000000;
7676
const MILLIS_IN_NANOS_BIGINT = BigInt(MILLIS_IN_NANOS_NUMBER);
7777

78+
const cfEnv = CfEnv.getInstance();
7879
const cfApp = cfEnv.cfApp;
7980
const cfAppData = cfEnv.isOnCf
8081
? {

test/__mocks__/cf-env.js

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

3-
const cfEnv = {
3+
class CfEnv {
44
_reset() {
55
this.isOnCf = false;
66
this.cfApp = {};
77
this.cfServices = {};
88
this.cfServiceCredentialsForLabel = jest.fn().mockReturnValue({});
9-
},
10-
};
11-
cfEnv._reset();
9+
}
10+
constructor() {
11+
this._reset();
12+
}
13+
static getInstance() {
14+
if (!CfEnv.__instance) {
15+
CfEnv.__instance = new CfEnv();
16+
}
17+
return CfEnv.__instance;
18+
}
19+
}
1220

13-
module.exports = { cfEnv };
21+
module.exports = { CfEnv };

test/feature-toggles.test.js

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

27-
const { cfEnv: envMock } = require("../src/shared/cf-env");
27+
const { CfEnv } = require("../src/shared/cf-env");
28+
const envMock = CfEnv.getInstance();
2829
jest.mock("../src/shared/cf-env", () => require("./__mocks__/cf-env"));
2930

3031
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 { cfEnv: 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();

test/shared/cf-env.test.js

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 { cfEnv: 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)