@atlassian/clientside-extensions-debug 2.4.1 → 2.5.0-84fa90d-kwd5ix2w
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/__mocks__/debug-state.mock.js +14 -0
- package/dist/cjs/__mocks__/debug-state.mock.js.map +1 -0
- package/dist/cjs/__mocks__/debug-subjects.mock.js +8 -0
- package/dist/cjs/__mocks__/debug-subjects.mock.js.map +1 -0
- package/dist/cjs/debug-state.js +23 -12
- package/dist/cjs/debug-state.js.map +1 -1
- package/dist/cjs/debug-subjects.js +4 -2
- package/dist/cjs/debug-subjects.js.map +1 -1
- package/dist/cjs/debug.js +3 -2
- package/dist/cjs/debug.js.map +1 -1
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/logger/console.js +3 -2
- package/dist/cjs/logger/console.js.map +1 -1
- package/dist/cjs/logger/default-logger.js +7 -5
- package/dist/cjs/logger/default-logger.js.map +1 -1
- package/dist/cjs/logger/logger.js +1 -1
- package/dist/cjs/logger/logger.js.map +1 -1
- package/dist/esm/__mocks__/debug-state.mock.js +7 -0
- package/dist/esm/__mocks__/debug-state.mock.js.map +1 -0
- package/dist/esm/__mocks__/debug-subjects.mock.js +4 -0
- package/dist/esm/__mocks__/debug-subjects.mock.js.map +1 -0
- package/dist/esm/debug-state.js.map +1 -1
- package/dist/esm/debug-subjects.js.map +1 -1
- package/dist/esm/logger/console.js.map +1 -1
- package/dist/types/__mocks__/debug-state.mock.d.ts +8 -0
- package/dist/types/__mocks__/debug-state.mock.d.ts.map +1 -0
- package/dist/types/__mocks__/debug-subjects.mock.d.ts +5 -0
- package/dist/types/__mocks__/debug-subjects.mock.d.ts.map +1 -0
- package/dist/types/debug-state.d.ts.map +1 -1
- package/dist/types/logger/console.d.ts.map +1 -1
- package/dist/types/logger/default-logger.d.ts.map +1 -1
- package/lib/debug-state-env.test.ts +2 -2
- package/lib/debug-subjects.ts +2 -2
- package/lib/logger/console.ts +4 -1
- package/package.json +6 -5
- package/dist/cjs/debug-state-env.test.js +0 -63
- package/dist/cjs/debug-state-env.test.js.map +0 -1
- package/dist/cjs/debug-state.test.js +0 -66
- package/dist/cjs/debug-state.test.js.map +0 -1
- package/dist/cjs/debug-subjects.test.js +0 -35
- package/dist/cjs/debug-subjects.test.js.map +0 -1
- package/dist/cjs/debug.test.js +0 -75
- package/dist/cjs/debug.test.js.map +0 -1
- package/dist/cjs/logger/console.test.js +0 -200
- package/dist/cjs/logger/console.test.js.map +0 -1
- package/dist/esm/debug-state-env.test.js +0 -42
- package/dist/esm/debug-state-env.test.js.map +0 -1
- package/dist/esm/debug-state.test.js +0 -63
- package/dist/esm/debug-state.test.js.map +0 -1
- package/dist/esm/debug-subjects.test.js +0 -33
- package/dist/esm/debug-subjects.test.js.map +0 -1
- package/dist/esm/debug.test.js +0 -73
- package/dist/esm/debug.test.js.map +0 -1
- package/dist/esm/logger/console.test.js +0 -198
- package/dist/esm/logger/console.test.js.map +0 -1
- package/dist/types/debug-state-env.test.d.ts +0 -2
- package/dist/types/debug-state-env.test.d.ts.map +0 -1
- package/dist/types/debug-state.test.d.ts +0 -2
- package/dist/types/debug-state.test.d.ts.map +0 -1
- package/dist/types/debug-subjects.test.d.ts +0 -2
- package/dist/types/debug-subjects.test.d.ts.map +0 -1
- package/dist/types/debug.test.d.ts +0 -2
- package/dist/types/debug.test.d.ts.map +0 -1
- package/dist/types/logger/console.test.d.ts +0 -2
- package/dist/types/logger/console.test.d.ts.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlassian/clientside-extensions-debug",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.0-84fa90d-kwd5ix2w",
|
|
4
4
|
"description": "Implements debug capabilities for client-side extensions.",
|
|
5
5
|
"license": "BSD-3-Clause",
|
|
6
6
|
"homepage": "https://bitbucket.org/atlassian/atlassian-clientside-extensions#readme",
|
|
@@ -59,22 +59,23 @@
|
|
|
59
59
|
"build": "yarn build:esm && yarn build:cjs",
|
|
60
60
|
"build:esm": "tsc -p tsconfig.json",
|
|
61
61
|
"build:cjs": "tsc -p tsconfig.cjs.json",
|
|
62
|
+
"verify": "tsc --noEmit -p tsconfig.all.json",
|
|
62
63
|
"watch": "tsc --watch",
|
|
63
64
|
"test": "jest",
|
|
64
65
|
"test:watch": "jest --watch"
|
|
65
66
|
},
|
|
66
67
|
"devDependencies": {
|
|
67
68
|
"@types/jest-in-case": "1.0.5",
|
|
68
|
-
"jest": "27.2.
|
|
69
|
+
"jest": "27.2.5",
|
|
69
70
|
"jest-in-case": "1.0.2",
|
|
70
|
-
"ts-jest": "27.0.
|
|
71
|
+
"ts-jest": "27.0.6"
|
|
71
72
|
},
|
|
72
73
|
"dependencies": {
|
|
73
|
-
"@atlassian/clientside-extensions-base": "^2.
|
|
74
|
+
"@atlassian/clientside-extensions-base": "^2.5.0-84fa90d-kwd5ix2w",
|
|
74
75
|
"tslib": "^2.2.0"
|
|
75
76
|
},
|
|
76
77
|
"engines": {
|
|
77
78
|
"node": ">=12.19.0"
|
|
78
79
|
},
|
|
79
|
-
"gitHead": "
|
|
80
|
+
"gitHead": "84fa90d805babbfd94e536dcc1bb4facd1dc4f59"
|
|
80
81
|
}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
-
}) : function(o, v) {
|
|
12
|
-
o["default"] = v;
|
|
13
|
-
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
-
if (mod && mod.__esModule) return mod;
|
|
16
|
-
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
-
__setModuleDefault(result, mod);
|
|
19
|
-
return result;
|
|
20
|
-
};
|
|
21
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
/* eslint-disable no-underscore-dangle */
|
|
23
|
-
const logger_1 = require("./logger/logger");
|
|
24
|
-
/**
|
|
25
|
-
* Using async imports in order to test process.env.NODE_ENV usage in module
|
|
26
|
-
* https://stackoverflow.com/a/48042799
|
|
27
|
-
*/
|
|
28
|
-
describe('debug-state initialization', () => {
|
|
29
|
-
const ORIGINAL_NODE_ENV = process.env.NODE_ENV;
|
|
30
|
-
beforeEach(() => {
|
|
31
|
-
// reset NODE_ENV to whatever it was.
|
|
32
|
-
process.env.NODE_ENV = ORIGINAL_NODE_ENV;
|
|
33
|
-
// reset cache of loaded modules. This will ensure that the module is re-initialized
|
|
34
|
-
// with the new NODE_ENV value
|
|
35
|
-
delete window.____c_p_d;
|
|
36
|
-
jest.resetModules();
|
|
37
|
-
});
|
|
38
|
-
it('should be set to FALSE if process.env.NODE_ENV is "production"', async () => {
|
|
39
|
-
process.env.NODE_ENV = 'production';
|
|
40
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
41
|
-
const debugStateModule = await Promise.resolve().then(() => __importStar(require('./debug-state')));
|
|
42
|
-
expect(window.____c_p_d.__initialized).toBe(true);
|
|
43
|
-
expect(window.____c_p_d.debug).toBe(false);
|
|
44
|
-
expect(window.____c_p_d.logging).toBe(false);
|
|
45
|
-
expect(window.____c_p_d.validation).toBe(false);
|
|
46
|
-
expect(window.____c_p_d.discovery).toBe(false);
|
|
47
|
-
});
|
|
48
|
-
it('should set the default log level to "ERROR" if process.env.NODE_ENV is "production"', async () => {
|
|
49
|
-
process.env.NODE_ENV = 'production';
|
|
50
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
51
|
-
await Promise.resolve().then(() => __importStar(require('./debug-state')));
|
|
52
|
-
expect(window.____c_p_d.__initialized).toBe(true);
|
|
53
|
-
expect(window.____c_p_d.logLevel).toBe(logger_1.LogLevel.error);
|
|
54
|
-
});
|
|
55
|
-
it('should be set the default log level to "INFO" if process.env.NODE_ENV is different than "production"', async () => {
|
|
56
|
-
process.env.NODE_ENV = 'development';
|
|
57
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
58
|
-
await Promise.resolve().then(() => __importStar(require('./debug-state')));
|
|
59
|
-
expect(window.____c_p_d.__initialized).toBe(true);
|
|
60
|
-
expect(window.____c_p_d.logLevel).toBe(logger_1.LogLevel.info);
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
//# sourceMappingURL=debug-state-env.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"debug-state-env.test.js","sourceRoot":"","sources":["../../lib/debug-state-env.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,0CAA0C;AAC1C,4CAA2C;AAE3C;;;GAGG;AACH,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IACxC,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;IAE/C,UAAU,CAAC,GAAG,EAAE;QACZ,qCAAqC;QACrC,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,iBAAiB,CAAC;QACzC,oFAAoF;QACpF,8BAA8B;QAC9B,OAAO,MAAM,CAAC,SAAS,CAAC;QACxB,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC5E,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,YAAY,CAAC;QAEpC,6DAA6D;QAC7D,MAAM,gBAAgB,GAAG,wDAAa,eAAe,GAAC,CAAC;QAEvD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAElD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qFAAqF,EAAE,KAAK,IAAI,EAAE;QACjG,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,YAAY,CAAC;QAEpC,6DAA6D;QAC7D,wDAAa,eAAe,GAAC,CAAC;QAE9B,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,iBAAQ,CAAC,KAAK,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sGAAsG,EAAE,KAAK,IAAI,EAAE;QAClH,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,aAAa,CAAC;QAErC,6DAA6D;QAC7D,wDAAa,eAAe,GAAC,CAAC;QAE9B,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,iBAAQ,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["/* eslint-disable no-underscore-dangle */\nimport { LogLevel } from './logger/logger';\n\n/**\n * Using async imports in order to test process.env.NODE_ENV usage in module\n * https://stackoverflow.com/a/48042799\n */\ndescribe('debug-state initialization', () => {\n const ORIGINAL_NODE_ENV = process.env.NODE_ENV;\n\n beforeEach(() => {\n // reset NODE_ENV to whatever it was.\n process.env.NODE_ENV = ORIGINAL_NODE_ENV;\n // reset cache of loaded modules. This will ensure that the module is re-initialized\n // with the new NODE_ENV value\n delete window.____c_p_d;\n jest.resetModules();\n });\n\n it('should be set to FALSE if process.env.NODE_ENV is \"production\"', async () => {\n process.env.NODE_ENV = 'production';\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const debugStateModule = await import('./debug-state');\n\n expect(window.____c_p_d.__initialized).toBe(true);\n\n expect(window.____c_p_d.debug).toBe(false);\n expect(window.____c_p_d.logging).toBe(false);\n expect(window.____c_p_d.validation).toBe(false);\n expect(window.____c_p_d.discovery).toBe(false);\n });\n\n it('should set the default log level to \"ERROR\" if process.env.NODE_ENV is \"production\"', async () => {\n process.env.NODE_ENV = 'production';\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n await import('./debug-state');\n\n expect(window.____c_p_d.__initialized).toBe(true);\n expect(window.____c_p_d.logLevel).toBe(LogLevel.error);\n });\n\n it('should be set the default log level to \"INFO\" if process.env.NODE_ENV is different than \"production\"', async () => {\n process.env.NODE_ENV = 'development';\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n await import('./debug-state');\n\n expect(window.____c_p_d.__initialized).toBe(true);\n expect(window.____c_p_d.logLevel).toBe(LogLevel.info);\n });\n});\n"]}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
|
-
/* eslint-disable no-underscore-dangle, jest/no-standalone-expect */
|
|
5
|
-
const jest_in_case_1 = tslib_1.__importDefault(require("jest-in-case"));
|
|
6
|
-
const debug_state_1 = require("./debug-state");
|
|
7
|
-
const logger_1 = require("./logger/logger");
|
|
8
|
-
describe('debug utils', () => {
|
|
9
|
-
beforeEach(() => {
|
|
10
|
-
window.____c_p_d = false;
|
|
11
|
-
});
|
|
12
|
-
jest_in_case_1.default('should be active if respective flag is set to TRUE', (opts) => {
|
|
13
|
-
expect(opts.isUtil()).toBe(false);
|
|
14
|
-
// switch flag to TRUE
|
|
15
|
-
window.____c_p_d = { [opts.key]: true };
|
|
16
|
-
expect(opts.isUtil()).toBe(true);
|
|
17
|
-
// switch ALL false
|
|
18
|
-
window.____c_p_d = false;
|
|
19
|
-
expect(opts.isUtil()).toBe(false);
|
|
20
|
-
// switch ALL true
|
|
21
|
-
window.____c_p_d = true;
|
|
22
|
-
expect(opts.isUtil()).toBe(true);
|
|
23
|
-
}, {
|
|
24
|
-
isDebugEnabled: { isUtil: debug_state_1.isDebugEnabled, key: 'debug' },
|
|
25
|
-
isLoggingEnabled: { isUtil: debug_state_1.isLoggingEnabled, key: 'logging' },
|
|
26
|
-
isValidationEnabled: { isUtil: debug_state_1.isValidationEnabled, key: 'validation' },
|
|
27
|
-
isDiscoveryEnabled: { isUtil: debug_state_1.isDiscoveryEnabled, key: 'discovery' },
|
|
28
|
-
});
|
|
29
|
-
describe('log levels', () => {
|
|
30
|
-
let prevDebugState;
|
|
31
|
-
beforeEach(() => {
|
|
32
|
-
prevDebugState = window.____c_p_d;
|
|
33
|
-
});
|
|
34
|
-
afterEach(() => {
|
|
35
|
-
window.____c_p_d = prevDebugState;
|
|
36
|
-
});
|
|
37
|
-
it('should allow to change the default log level using utils', () => {
|
|
38
|
-
expect(debug_state_1.getLogLevel()).toBe(logger_1.LogLevel.info);
|
|
39
|
-
debug_state_1.setLogLevel(logger_1.LogLevel.debug);
|
|
40
|
-
expect(debug_state_1.getLogLevel()).toBe(logger_1.LogLevel.debug);
|
|
41
|
-
});
|
|
42
|
-
it('should allow to change log level using global variable', () => {
|
|
43
|
-
// Change with enum
|
|
44
|
-
window.____c_p_d.logLevel = logger_1.LogLevel.error;
|
|
45
|
-
expect(debug_state_1.getLogLevel()).toBe(logger_1.LogLevel.error);
|
|
46
|
-
// Change with string value
|
|
47
|
-
window.____c_p_d.logLevel = 'warn';
|
|
48
|
-
expect(debug_state_1.getLogLevel()).toBe(logger_1.LogLevel.warn);
|
|
49
|
-
});
|
|
50
|
-
it('should fallback to a default "INFO" level when using unsupported runtime value', () => {
|
|
51
|
-
window.____c_p_d.logLevel = 'show-me-all-the-things';
|
|
52
|
-
expect(debug_state_1.getLogLevel()).toBe(logger_1.LogLevel.info);
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
describe('compatibility mode', () => {
|
|
56
|
-
it('should fallback to a default "INFO" level when "logLevel" property is missing e.g. CSE < 2.1.0', () => {
|
|
57
|
-
Object.defineProperty(window, '____c_p_d', {
|
|
58
|
-
value: {},
|
|
59
|
-
configurable: true,
|
|
60
|
-
writable: true,
|
|
61
|
-
});
|
|
62
|
-
expect(debug_state_1.getLogLevel()).toBe(logger_1.LogLevel.info);
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
//# sourceMappingURL=debug-state.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"debug-state.test.js","sourceRoot":"","sources":["../../lib/debug-state.test.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-underscore-dangle, jest/no-standalone-expect */\nimport cases from 'jest-in-case';\nimport type { ExposedClientExtensionDebug } from './debug-state';\nimport { isDebugEnabled, isDiscoveryEnabled, isLoggingEnabled, isValidationEnabled, getLogLevel, setLogLevel } from './debug-state';\nimport { LogLevel } from './logger/logger';\n\ndescribe('debug utils', () => {\n beforeEach(() => {\n (window.____c_p_d as unknown) = false;\n });\n\n cases(\n 'should be active if respective flag is set to TRUE',\n (opts) => {\n expect(opts.isUtil()).toBe(false);\n\n // switch flag to TRUE\n (window.____c_p_d as unknown) = { [opts.key]: true };\n\n expect(opts.isUtil()).toBe(true);\n\n // switch ALL false\n (window.____c_p_d as unknown) = false;\n\n expect(opts.isUtil()).toBe(false);\n\n // switch ALL true\n (window.____c_p_d as unknown) = true;\n\n expect(opts.isUtil()).toBe(true);\n },\n {\n isDebugEnabled: { isUtil: isDebugEnabled, key: 'debug' },\n isLoggingEnabled: { isUtil: isLoggingEnabled, key: 'logging' },\n isValidationEnabled: { isUtil: isValidationEnabled, key: 'validation' },\n isDiscoveryEnabled: { isUtil: isDiscoveryEnabled, key: 'discovery' },\n },\n );\n\n describe('log levels', () => {\n let prevDebugState: ExposedClientExtensionDebug;\n\n beforeEach(() => {\n prevDebugState = window.____c_p_d;\n });\n\n afterEach(() => {\n window.____c_p_d = prevDebugState;\n });\n\n it('should allow to change the default log level using utils', () => {\n expect(getLogLevel()).toBe(LogLevel.info);\n\n setLogLevel(LogLevel.debug);\n\n expect(getLogLevel()).toBe(LogLevel.debug);\n });\n\n it('should allow to change log level using global variable', () => {\n // Change with enum\n (window.____c_p_d.logLevel as LogLevel) = LogLevel.error;\n expect(getLogLevel()).toBe(LogLevel.error);\n\n // Change with string value\n (window.____c_p_d.logLevel as string) = 'warn';\n expect(getLogLevel()).toBe(LogLevel.warn);\n });\n\n it('should fallback to a default \"INFO\" level when using unsupported runtime value', () => {\n (window.____c_p_d.logLevel as string) = 'show-me-all-the-things';\n\n expect(getLogLevel()).toBe(LogLevel.info);\n });\n });\n\n describe('compatibility mode', () => {\n it('should fallback to a default \"INFO\" level when \"logLevel\" property is missing e.g. CSE < 2.1.0', () => {\n Object.defineProperty(window, '____c_p_d', {\n value: {},\n configurable: true,\n writable: true,\n });\n\n expect(getLogLevel()).toBe(LogLevel.info);\n });\n });\n});\n"]}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const clientside_extensions_base_1 = require("@atlassian/clientside-extensions-base");
|
|
4
|
-
const debug_subjects_1 = require("./debug-subjects");
|
|
5
|
-
describe('debug-subject', () => {
|
|
6
|
-
const debugFactory = () => new clientside_extensions_base_1.Subject();
|
|
7
|
-
describe('registerDebugSubject', () => {
|
|
8
|
-
it('should create an register a subject under a given namespace', () => {
|
|
9
|
-
const subject = debug_subjects_1.registerDebugSubject("logger" /* Logger */, debugFactory);
|
|
10
|
-
expect(subject).toBeInstanceOf(clientside_extensions_base_1.Subject);
|
|
11
|
-
});
|
|
12
|
-
it('should not create a new instance for a previously registered key', () => {
|
|
13
|
-
const subject = debug_subjects_1.registerDebugSubject("state" /* State */, debugFactory);
|
|
14
|
-
const sameSubject = debug_subjects_1.registerDebugSubject("state" /* State */, debugFactory);
|
|
15
|
-
expect(subject).toBe(sameSubject);
|
|
16
|
-
});
|
|
17
|
-
});
|
|
18
|
-
describe('observeDebugSubject', () => {
|
|
19
|
-
it('should throw if the subject does not exist yet', () => {
|
|
20
|
-
// @ts-expect-error We are using a wrong subject key here
|
|
21
|
-
const unregisteredSubject = () => debug_subjects_1.observeDebugSubject('Foo', () => { });
|
|
22
|
-
expect(unregisteredSubject).toThrow(`No subject registered for key: "Foo"`);
|
|
23
|
-
});
|
|
24
|
-
it('should subscribe to a previously registered subject', () => {
|
|
25
|
-
const SUBJECT = "state" /* State */;
|
|
26
|
-
const TEST_PAYLOAD = 'some payload';
|
|
27
|
-
const observer = jest.fn();
|
|
28
|
-
const subject = debug_subjects_1.registerDebugSubject(SUBJECT, debugFactory);
|
|
29
|
-
debug_subjects_1.observeDebugSubject(SUBJECT, observer);
|
|
30
|
-
subject.notify(TEST_PAYLOAD);
|
|
31
|
-
expect(observer).toBeCalledWith(TEST_PAYLOAD);
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
});
|
|
35
|
-
//# sourceMappingURL=debug-subjects.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"debug-subjects.test.js","sourceRoot":"","sources":["../../lib/debug-subjects.test.ts"],"names":[],"mappings":";;AAAA,sFAAgE;AAChE,qDAA4F;AAE5F,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC3B,MAAM,YAAY,GAAG,GAAoB,EAAE,CAAC,IAAI,oCAAO,EAAU,CAAC;IAElE,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAClC,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACnE,MAAM,OAAO,GAAG,qCAAoB,wBAAuB,YAAY,CAAC,CAAC;YACzE,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,oCAAO,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;YACxE,MAAM,OAAO,GAAG,qCAAoB,sBAAsB,YAAY,CAAC,CAAC;YACxE,MAAM,WAAW,GAAG,qCAAoB,sBAAsB,YAAY,CAAC,CAAC;YAC5E,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACtD,yDAAyD;YACzD,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAAC,oCAAmB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAEvE,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC3D,MAAM,OAAO,sBAAsB,CAAC;YACpC,MAAM,YAAY,GAAG,cAAc,CAAC;YAEpC,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,qCAAoB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAC5D,oCAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAEvC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC7B,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["import { Subject } from '@atlassian/clientside-extensions-base';\nimport { DebugSubjects, observeDebugSubject, registerDebugSubject } from './debug-subjects';\n\ndescribe('debug-subject', () => {\n const debugFactory = (): Subject<string> => new Subject<string>();\n\n describe('registerDebugSubject', () => {\n it('should create an register a subject under a given namespace', () => {\n const subject = registerDebugSubject(DebugSubjects.Logger, debugFactory);\n expect(subject).toBeInstanceOf(Subject);\n });\n\n it('should not create a new instance for a previously registered key', () => {\n const subject = registerDebugSubject(DebugSubjects.State, debugFactory);\n const sameSubject = registerDebugSubject(DebugSubjects.State, debugFactory);\n expect(subject).toBe(sameSubject);\n });\n });\n\n describe('observeDebugSubject', () => {\n it('should throw if the subject does not exist yet', () => {\n // @ts-expect-error We are using a wrong subject key here\n const unregisteredSubject = () => observeDebugSubject('Foo', () => {});\n\n expect(unregisteredSubject).toThrow(`No subject registered for key: \"Foo\"`);\n });\n\n it('should subscribe to a previously registered subject', () => {\n const SUBJECT = DebugSubjects.State;\n const TEST_PAYLOAD = 'some payload';\n\n const observer = jest.fn();\n const subject = registerDebugSubject(SUBJECT, debugFactory);\n observeDebugSubject(SUBJECT, observer);\n\n subject.notify(TEST_PAYLOAD);\n expect(observer).toBeCalledWith(TEST_PAYLOAD);\n });\n });\n});\n"]}
|
package/dist/cjs/debug.test.js
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const utils_1 = require("ts-jest/utils");
|
|
4
|
-
const debug_state_1 = require("./debug-state");
|
|
5
|
-
const debug_1 = require("./debug");
|
|
6
|
-
const logger_1 = require("./logger/logger");
|
|
7
|
-
const default_logger_1 = require("./logger/default-logger");
|
|
8
|
-
jest.mock('./debug-state');
|
|
9
|
-
describe('onDebug util', () => {
|
|
10
|
-
const orgConsole = global.console;
|
|
11
|
-
beforeEach(() => {
|
|
12
|
-
utils_1.mocked(debug_state_1.isDebugEnabled).mockReturnValue(false);
|
|
13
|
-
utils_1.mocked(debug_state_1.isLoggingEnabled).mockReturnValue(false);
|
|
14
|
-
utils_1.mocked(debug_state_1.getLogLevel).mockReturnValue(logger_1.LogLevel.debug);
|
|
15
|
-
// Silent down console
|
|
16
|
-
global.console = {
|
|
17
|
-
...orgConsole,
|
|
18
|
-
error: jest.fn(),
|
|
19
|
-
log: jest.fn(),
|
|
20
|
-
groupCollapsed: jest.fn(),
|
|
21
|
-
};
|
|
22
|
-
});
|
|
23
|
-
afterEach(() => {
|
|
24
|
-
utils_1.mocked(debug_state_1.isDebugEnabled).mockClear();
|
|
25
|
-
utils_1.mocked(debug_state_1.isLoggingEnabled).mockClear();
|
|
26
|
-
utils_1.mocked(debug_state_1.getLogLevel).mockClear();
|
|
27
|
-
global.console = orgConsole;
|
|
28
|
-
});
|
|
29
|
-
it('should only execute the given callback when debug and logging is enabled', () => {
|
|
30
|
-
const debugCallbackSpy = jest.fn();
|
|
31
|
-
// disable
|
|
32
|
-
utils_1.mocked(debug_state_1.isDebugEnabled).mockReturnValue(false);
|
|
33
|
-
utils_1.mocked(debug_state_1.isLoggingEnabled).mockReturnValue(false);
|
|
34
|
-
debug_1.onDebug(debugCallbackSpy);
|
|
35
|
-
expect(debugCallbackSpy).not.toHaveBeenCalled();
|
|
36
|
-
// enable
|
|
37
|
-
utils_1.mocked(debug_state_1.isDebugEnabled).mockReturnValue(true);
|
|
38
|
-
utils_1.mocked(debug_state_1.isLoggingEnabled).mockReturnValue(true);
|
|
39
|
-
debug_1.onDebug(debugCallbackSpy);
|
|
40
|
-
expect(debugCallbackSpy).toHaveBeenCalled();
|
|
41
|
-
});
|
|
42
|
-
it('should not notify the observer when logging is disabled', () => {
|
|
43
|
-
const payload = {
|
|
44
|
-
message: 'foo',
|
|
45
|
-
level: logger_1.LogLevel.error,
|
|
46
|
-
};
|
|
47
|
-
const loggerCallback = jest.fn(() => payload);
|
|
48
|
-
const loggerObserver = jest.fn();
|
|
49
|
-
// need to enable debug in order to run the debugCallback
|
|
50
|
-
utils_1.mocked(debug_state_1.isDebugEnabled).mockReturnValue(true);
|
|
51
|
-
// disable
|
|
52
|
-
utils_1.mocked(debug_state_1.isLoggingEnabled).mockReturnValue(false);
|
|
53
|
-
default_logger_1.observeLogger(loggerObserver);
|
|
54
|
-
debug_1.onDebug(loggerCallback);
|
|
55
|
-
expect(loggerCallback).not.toHaveBeenCalled();
|
|
56
|
-
expect(loggerObserver).not.toHaveBeenCalled();
|
|
57
|
-
// enable
|
|
58
|
-
utils_1.mocked(debug_state_1.isLoggingEnabled).mockReturnValue(true);
|
|
59
|
-
debug_1.onDebug(loggerCallback);
|
|
60
|
-
expect(loggerCallback).toHaveBeenCalledTimes(1);
|
|
61
|
-
expect(loggerObserver).toHaveBeenCalledWith(payload);
|
|
62
|
-
});
|
|
63
|
-
it('should not throw an error when logger callback fails', () => {
|
|
64
|
-
utils_1.mocked(debug_state_1.isDebugEnabled).mockReturnValue(true);
|
|
65
|
-
utils_1.mocked(debug_state_1.isLoggingEnabled).mockReturnValue(true);
|
|
66
|
-
const callOnDebug = () => {
|
|
67
|
-
const loggerCallback = () => {
|
|
68
|
-
throw new Error('ups');
|
|
69
|
-
};
|
|
70
|
-
debug_1.onDebug(loggerCallback);
|
|
71
|
-
};
|
|
72
|
-
expect(callOnDebug).not.toThrow();
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
|
-
//# sourceMappingURL=debug.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"debug.test.js","sourceRoot":"","sources":["../../lib/debug.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { mocked } from 'ts-jest/utils';\nimport { getLogLevel, isDebugEnabled, isLoggingEnabled } from './debug-state';\nimport { onDebug } from './debug';\nimport { LogLevel } from './logger/logger';\nimport { observeLogger } from './logger/default-logger';\n\njest.mock('./debug-state');\n\ndescribe('onDebug util', () => {\n const orgConsole = global.console;\n\n beforeEach(() => {\n mocked(isDebugEnabled).mockReturnValue(false);\n mocked(isLoggingEnabled).mockReturnValue(false);\n mocked(getLogLevel).mockReturnValue(LogLevel.debug);\n\n // Silent down console\n global.console = {\n ...orgConsole,\n error: jest.fn(),\n log: jest.fn(),\n groupCollapsed: jest.fn(),\n };\n });\n\n afterEach(() => {\n mocked(isDebugEnabled).mockClear();\n mocked(isLoggingEnabled).mockClear();\n mocked(getLogLevel).mockClear();\n\n global.console = orgConsole;\n });\n\n it('should only execute the given callback when debug and logging is enabled', () => {\n const debugCallbackSpy = jest.fn();\n\n // disable\n mocked(isDebugEnabled).mockReturnValue(false);\n mocked(isLoggingEnabled).mockReturnValue(false);\n\n onDebug(debugCallbackSpy);\n\n expect(debugCallbackSpy).not.toHaveBeenCalled();\n\n // enable\n mocked(isDebugEnabled).mockReturnValue(true);\n mocked(isLoggingEnabled).mockReturnValue(true);\n\n onDebug(debugCallbackSpy);\n\n expect(debugCallbackSpy).toHaveBeenCalled();\n });\n\n it('should not notify the observer when logging is disabled', () => {\n const payload = {\n message: 'foo',\n level: LogLevel.error,\n };\n const loggerCallback = jest.fn(() => payload);\n const loggerObserver = jest.fn();\n\n // need to enable debug in order to run the debugCallback\n mocked(isDebugEnabled).mockReturnValue(true);\n // disable\n mocked(isLoggingEnabled).mockReturnValue(false);\n\n observeLogger(loggerObserver);\n onDebug(loggerCallback);\n\n expect(loggerCallback).not.toHaveBeenCalled();\n expect(loggerObserver).not.toHaveBeenCalled();\n\n // enable\n mocked(isLoggingEnabled).mockReturnValue(true);\n onDebug(loggerCallback);\n\n expect(loggerCallback).toHaveBeenCalledTimes(1);\n expect(loggerObserver).toHaveBeenCalledWith(payload);\n });\n\n it('should not throw an error when logger callback fails', () => {\n mocked(isDebugEnabled).mockReturnValue(true);\n mocked(isLoggingEnabled).mockReturnValue(true);\n\n const callOnDebug = () => {\n const loggerCallback = () => {\n throw new Error('ups');\n };\n\n onDebug(loggerCallback);\n };\n\n expect(callOnDebug).not.toThrow();\n });\n});\n"]}
|
|
@@ -1,200 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const utils_1 = require("ts-jest/utils");
|
|
4
|
-
const logger_1 = require("./logger");
|
|
5
|
-
const console_1 = require("./console");
|
|
6
|
-
const debug_state_1 = require("../debug-state");
|
|
7
|
-
jest.mock('../debug-state');
|
|
8
|
-
describe('console logger', () => {
|
|
9
|
-
const orgConsole = global.console;
|
|
10
|
-
beforeEach(() => {
|
|
11
|
-
global.console = {
|
|
12
|
-
...orgConsole,
|
|
13
|
-
log: jest.fn(),
|
|
14
|
-
error: jest.fn(),
|
|
15
|
-
debug: jest.fn(),
|
|
16
|
-
info: jest.fn(),
|
|
17
|
-
warn: jest.fn(),
|
|
18
|
-
groupCollapsed: jest.fn(),
|
|
19
|
-
};
|
|
20
|
-
});
|
|
21
|
-
afterEach(() => {
|
|
22
|
-
utils_1.mocked(debug_state_1.getLogLevel).mockClear();
|
|
23
|
-
global.console = orgConsole;
|
|
24
|
-
});
|
|
25
|
-
const getEventPayload = (level) => ({
|
|
26
|
-
level,
|
|
27
|
-
message: 'Hello!',
|
|
28
|
-
});
|
|
29
|
-
describe('"DEBUG" level', () => {
|
|
30
|
-
it.each([
|
|
31
|
-
// prettier-ignore-start
|
|
32
|
-
[logger_1.LogLevel.debug],
|
|
33
|
-
])('should display "DEBUG" log when log level is set to "%s"', (logLevel) => {
|
|
34
|
-
// given
|
|
35
|
-
utils_1.mocked(debug_state_1.getLogLevel).mockReturnValue(logLevel);
|
|
36
|
-
const event = getEventPayload(logger_1.LogLevel.debug);
|
|
37
|
-
// when
|
|
38
|
-
console_1.consoleLogger(event);
|
|
39
|
-
// then
|
|
40
|
-
expect(global.console.debug).toHaveBeenCalledWith(expect.stringContaining('Hello!'));
|
|
41
|
-
expect(global.console.groupCollapsed).toHaveBeenCalled();
|
|
42
|
-
});
|
|
43
|
-
it.each([
|
|
44
|
-
// prettier-ignore-start
|
|
45
|
-
[logger_1.LogLevel.error],
|
|
46
|
-
[logger_1.LogLevel.warn],
|
|
47
|
-
[logger_1.LogLevel.deprecation],
|
|
48
|
-
[logger_1.LogLevel.info],
|
|
49
|
-
])('should not display "DEBUG" log when log level is set to "%s"', (logLevel) => {
|
|
50
|
-
// given
|
|
51
|
-
utils_1.mocked(debug_state_1.getLogLevel).mockReturnValue(logLevel);
|
|
52
|
-
const event = getEventPayload(logger_1.LogLevel.debug);
|
|
53
|
-
// when
|
|
54
|
-
console_1.consoleLogger(event);
|
|
55
|
-
// then
|
|
56
|
-
expect(global.console.debug).not.toHaveBeenCalled();
|
|
57
|
-
expect(global.console.groupCollapsed).not.toHaveBeenCalled();
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
describe('"ERROR" level', () => {
|
|
61
|
-
it.each([
|
|
62
|
-
// prettier-ignore-start
|
|
63
|
-
[logger_1.LogLevel.debug],
|
|
64
|
-
[logger_1.LogLevel.error],
|
|
65
|
-
])('should display "ERROR" log when log level is set to "%s"', (logLevel) => {
|
|
66
|
-
// given
|
|
67
|
-
utils_1.mocked(debug_state_1.getLogLevel).mockReturnValue(logLevel);
|
|
68
|
-
const event = getEventPayload(logger_1.LogLevel.error);
|
|
69
|
-
// when
|
|
70
|
-
console_1.consoleLogger(event);
|
|
71
|
-
// then
|
|
72
|
-
expect(global.console.error).toHaveBeenCalledWith(expect.stringContaining('Hello!'));
|
|
73
|
-
if (logLevel === logger_1.LogLevel.debug) {
|
|
74
|
-
// eslint-disable-next-line jest/no-conditional-expect
|
|
75
|
-
expect(global.console.groupCollapsed).toHaveBeenCalled();
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
// eslint-disable-next-line jest/no-conditional-expect
|
|
79
|
-
expect(global.console.groupCollapsed).not.toHaveBeenCalled();
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
it.each([
|
|
83
|
-
// prettier-ignore-start
|
|
84
|
-
[logger_1.LogLevel.warn],
|
|
85
|
-
[logger_1.LogLevel.deprecation],
|
|
86
|
-
[logger_1.LogLevel.info],
|
|
87
|
-
])('should not display "ERROR" log when log level is set to "%s"', (logLevel) => {
|
|
88
|
-
// given
|
|
89
|
-
utils_1.mocked(debug_state_1.getLogLevel).mockReturnValue(logLevel);
|
|
90
|
-
const event = getEventPayload(logger_1.LogLevel.error);
|
|
91
|
-
// when
|
|
92
|
-
console_1.consoleLogger(event);
|
|
93
|
-
// then
|
|
94
|
-
expect(global.console.error).not.toHaveBeenCalled();
|
|
95
|
-
expect(global.console.groupCollapsed).not.toHaveBeenCalled();
|
|
96
|
-
});
|
|
97
|
-
});
|
|
98
|
-
describe('"WARN" level', () => {
|
|
99
|
-
it.each([
|
|
100
|
-
// prettier-ignore-start
|
|
101
|
-
[logger_1.LogLevel.debug],
|
|
102
|
-
[logger_1.LogLevel.error],
|
|
103
|
-
[logger_1.LogLevel.warn],
|
|
104
|
-
])('should display "WARN" log when log level is set to "%s"', (logLevel) => {
|
|
105
|
-
// given
|
|
106
|
-
utils_1.mocked(debug_state_1.getLogLevel).mockReturnValue(logLevel);
|
|
107
|
-
const event = getEventPayload(logger_1.LogLevel.warn);
|
|
108
|
-
// when
|
|
109
|
-
console_1.consoleLogger(event);
|
|
110
|
-
// then
|
|
111
|
-
expect(global.console.warn).toHaveBeenCalledWith(expect.stringContaining('Hello!'));
|
|
112
|
-
if (logLevel === logger_1.LogLevel.debug) {
|
|
113
|
-
// eslint-disable-next-line jest/no-conditional-expect
|
|
114
|
-
expect(global.console.groupCollapsed).toHaveBeenCalled();
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
// eslint-disable-next-line jest/no-conditional-expect
|
|
118
|
-
expect(global.console.groupCollapsed).not.toHaveBeenCalled();
|
|
119
|
-
}
|
|
120
|
-
});
|
|
121
|
-
it.each([
|
|
122
|
-
// prettier-ignore-start
|
|
123
|
-
[logger_1.LogLevel.deprecation],
|
|
124
|
-
[logger_1.LogLevel.info],
|
|
125
|
-
])('should not display "WARN" log when log level is set to "%s"', (logLevel) => {
|
|
126
|
-
// given
|
|
127
|
-
utils_1.mocked(debug_state_1.getLogLevel).mockReturnValue(logLevel);
|
|
128
|
-
const event = getEventPayload(logger_1.LogLevel.warn);
|
|
129
|
-
// when
|
|
130
|
-
console_1.consoleLogger(event);
|
|
131
|
-
// then
|
|
132
|
-
expect(global.console.warn).not.toHaveBeenCalled();
|
|
133
|
-
expect(global.console.groupCollapsed).not.toHaveBeenCalled();
|
|
134
|
-
});
|
|
135
|
-
});
|
|
136
|
-
describe('"DEPRECATION" level', () => {
|
|
137
|
-
it.each([
|
|
138
|
-
// prettier-ignore-start
|
|
139
|
-
[logger_1.LogLevel.debug],
|
|
140
|
-
[logger_1.LogLevel.error],
|
|
141
|
-
[logger_1.LogLevel.warn],
|
|
142
|
-
])('should display "DEPRECATION" log when log level is set to "%s"', (logLevel) => {
|
|
143
|
-
// given
|
|
144
|
-
utils_1.mocked(debug_state_1.getLogLevel).mockReturnValue(logLevel);
|
|
145
|
-
const event = getEventPayload(logger_1.LogLevel.deprecation);
|
|
146
|
-
// when
|
|
147
|
-
console_1.consoleLogger(event);
|
|
148
|
-
// then
|
|
149
|
-
expect(global.console.warn).toHaveBeenCalledWith(expect.stringContaining('Hello!'));
|
|
150
|
-
if (logLevel === logger_1.LogLevel.debug) {
|
|
151
|
-
// eslint-disable-next-line jest/no-conditional-expect
|
|
152
|
-
expect(global.console.groupCollapsed).toHaveBeenCalled();
|
|
153
|
-
}
|
|
154
|
-
else {
|
|
155
|
-
// eslint-disable-next-line jest/no-conditional-expect
|
|
156
|
-
expect(global.console.groupCollapsed).not.toHaveBeenCalled();
|
|
157
|
-
}
|
|
158
|
-
});
|
|
159
|
-
it.each([
|
|
160
|
-
// prettier-ignore-start
|
|
161
|
-
[logger_1.LogLevel.info],
|
|
162
|
-
])('should not display "DEPRECATION" log when log level is set to "%s"', (logLevel) => {
|
|
163
|
-
// given
|
|
164
|
-
utils_1.mocked(debug_state_1.getLogLevel).mockReturnValue(logLevel);
|
|
165
|
-
const event = getEventPayload(logger_1.LogLevel.deprecation);
|
|
166
|
-
// when
|
|
167
|
-
console_1.consoleLogger(event);
|
|
168
|
-
// then
|
|
169
|
-
expect(global.console.warn).not.toHaveBeenCalled();
|
|
170
|
-
expect(global.console.groupCollapsed).not.toHaveBeenCalled();
|
|
171
|
-
});
|
|
172
|
-
});
|
|
173
|
-
describe('"INFO" level', () => {
|
|
174
|
-
it.each([
|
|
175
|
-
// prettier-ignore-start
|
|
176
|
-
[logger_1.LogLevel.debug],
|
|
177
|
-
[logger_1.LogLevel.error],
|
|
178
|
-
[logger_1.LogLevel.warn],
|
|
179
|
-
[logger_1.LogLevel.deprecation],
|
|
180
|
-
[logger_1.LogLevel.info],
|
|
181
|
-
])('should display "INFO" log when log level is set to "%s"', (logLevel) => {
|
|
182
|
-
// given
|
|
183
|
-
utils_1.mocked(debug_state_1.getLogLevel).mockReturnValue(logLevel);
|
|
184
|
-
const event = getEventPayload(logger_1.LogLevel.info);
|
|
185
|
-
// when
|
|
186
|
-
console_1.consoleLogger(event);
|
|
187
|
-
// then
|
|
188
|
-
expect(global.console.info).toHaveBeenCalledWith(expect.stringContaining('Hello!'));
|
|
189
|
-
if (logLevel === logger_1.LogLevel.debug) {
|
|
190
|
-
// eslint-disable-next-line jest/no-conditional-expect
|
|
191
|
-
expect(global.console.groupCollapsed).toHaveBeenCalled();
|
|
192
|
-
}
|
|
193
|
-
else {
|
|
194
|
-
// eslint-disable-next-line jest/no-conditional-expect
|
|
195
|
-
expect(global.console.groupCollapsed).not.toHaveBeenCalled();
|
|
196
|
-
}
|
|
197
|
-
});
|
|
198
|
-
});
|
|
199
|
-
});
|
|
200
|
-
//# sourceMappingURL=console.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"console.test.js","sourceRoot":"","sources":["../../../lib/logger/console.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { mocked } from 'ts-jest/utils';\nimport type { LoggerPayload } from './logger';\nimport { LogLevel } from './logger';\nimport { consoleLogger } from './console';\nimport { getLogLevel } from '../debug-state';\n\njest.mock('../debug-state');\n\ndescribe('console logger', () => {\n const orgConsole = global.console;\n\n beforeEach(() => {\n global.console = {\n ...orgConsole,\n log: jest.fn(),\n error: jest.fn(),\n debug: jest.fn(),\n info: jest.fn(),\n warn: jest.fn(),\n groupCollapsed: jest.fn(),\n };\n });\n\n afterEach(() => {\n mocked(getLogLevel).mockClear();\n\n global.console = orgConsole;\n });\n\n const getEventPayload = (level: LogLevel): LoggerPayload => ({\n level,\n message: 'Hello!',\n });\n\n describe('\"DEBUG\" level', () => {\n it.each([\n // prettier-ignore-start\n [LogLevel.debug],\n // prettier-ignore-end\n ])('should display \"DEBUG\" log when log level is set to \"%s\"', (logLevel: LogLevel) => {\n // given\n mocked(getLogLevel).mockReturnValue(logLevel);\n const event = getEventPayload(LogLevel.debug);\n\n // when\n consoleLogger(event);\n\n // then\n expect(global.console.debug).toHaveBeenCalledWith(expect.stringContaining('Hello!'));\n expect(global.console.groupCollapsed).toHaveBeenCalled();\n });\n\n it.each([\n // prettier-ignore-start\n [LogLevel.error],\n [LogLevel.warn],\n [LogLevel.deprecation],\n [LogLevel.info],\n // prettier-ignore-end\n ])('should not display \"DEBUG\" log when log level is set to \"%s\"', (logLevel: LogLevel) => {\n // given\n mocked(getLogLevel).mockReturnValue(logLevel);\n const event = getEventPayload(LogLevel.debug);\n\n // when\n consoleLogger(event);\n\n // then\n expect(global.console.debug).not.toHaveBeenCalled();\n expect(global.console.groupCollapsed).not.toHaveBeenCalled();\n });\n });\n\n describe('\"ERROR\" level', () => {\n it.each([\n // prettier-ignore-start\n [LogLevel.debug],\n [LogLevel.error],\n // prettier-ignore-end\n ])('should display \"ERROR\" log when log level is set to \"%s\"', (logLevel: LogLevel) => {\n // given\n mocked(getLogLevel).mockReturnValue(logLevel);\n const event = getEventPayload(LogLevel.error);\n\n // when\n consoleLogger(event);\n\n // then\n expect(global.console.error).toHaveBeenCalledWith(expect.stringContaining('Hello!'));\n\n if (logLevel === LogLevel.debug) {\n // eslint-disable-next-line jest/no-conditional-expect\n expect(global.console.groupCollapsed).toHaveBeenCalled();\n } else {\n // eslint-disable-next-line jest/no-conditional-expect\n expect(global.console.groupCollapsed).not.toHaveBeenCalled();\n }\n });\n\n it.each([\n // prettier-ignore-start\n [LogLevel.warn],\n [LogLevel.deprecation],\n [LogLevel.info],\n // prettier-ignore-end\n ])('should not display \"ERROR\" log when log level is set to \"%s\"', (logLevel: LogLevel) => {\n // given\n mocked(getLogLevel).mockReturnValue(logLevel);\n const event = getEventPayload(LogLevel.error);\n\n // when\n consoleLogger(event);\n\n // then\n expect(global.console.error).not.toHaveBeenCalled();\n expect(global.console.groupCollapsed).not.toHaveBeenCalled();\n });\n });\n\n describe('\"WARN\" level', () => {\n it.each([\n // prettier-ignore-start\n [LogLevel.debug],\n [LogLevel.error],\n [LogLevel.warn],\n // prettier-ignore-end\n ])('should display \"WARN\" log when log level is set to \"%s\"', (logLevel: LogLevel) => {\n // given\n mocked(getLogLevel).mockReturnValue(logLevel);\n const event = getEventPayload(LogLevel.warn);\n\n // when\n consoleLogger(event);\n\n // then\n expect(global.console.warn).toHaveBeenCalledWith(expect.stringContaining('Hello!'));\n\n if (logLevel === LogLevel.debug) {\n // eslint-disable-next-line jest/no-conditional-expect\n expect(global.console.groupCollapsed).toHaveBeenCalled();\n } else {\n // eslint-disable-next-line jest/no-conditional-expect\n expect(global.console.groupCollapsed).not.toHaveBeenCalled();\n }\n });\n\n it.each([\n // prettier-ignore-start\n [LogLevel.deprecation],\n [LogLevel.info],\n // prettier-ignore-end\n ])('should not display \"WARN\" log when log level is set to \"%s\"', (logLevel: LogLevel) => {\n // given\n mocked(getLogLevel).mockReturnValue(logLevel);\n const event = getEventPayload(LogLevel.warn);\n\n // when\n consoleLogger(event);\n\n // then\n expect(global.console.warn).not.toHaveBeenCalled();\n expect(global.console.groupCollapsed).not.toHaveBeenCalled();\n });\n });\n\n describe('\"DEPRECATION\" level', () => {\n it.each([\n // prettier-ignore-start\n [LogLevel.debug],\n [LogLevel.error],\n [LogLevel.warn],\n // prettier-ignore-end\n ])('should display \"DEPRECATION\" log when log level is set to \"%s\"', (logLevel: LogLevel) => {\n // given\n mocked(getLogLevel).mockReturnValue(logLevel);\n const event = getEventPayload(LogLevel.deprecation);\n\n // when\n consoleLogger(event);\n\n // then\n expect(global.console.warn).toHaveBeenCalledWith(expect.stringContaining('Hello!'));\n\n if (logLevel === LogLevel.debug) {\n // eslint-disable-next-line jest/no-conditional-expect\n expect(global.console.groupCollapsed).toHaveBeenCalled();\n } else {\n // eslint-disable-next-line jest/no-conditional-expect\n expect(global.console.groupCollapsed).not.toHaveBeenCalled();\n }\n });\n\n it.each([\n // prettier-ignore-start\n [LogLevel.info],\n // prettier-ignore-end\n ])('should not display \"DEPRECATION\" log when log level is set to \"%s\"', (logLevel: LogLevel) => {\n // given\n mocked(getLogLevel).mockReturnValue(logLevel);\n const event = getEventPayload(LogLevel.deprecation);\n\n // when\n consoleLogger(event);\n\n // then\n expect(global.console.warn).not.toHaveBeenCalled();\n expect(global.console.groupCollapsed).not.toHaveBeenCalled();\n });\n });\n\n describe('\"INFO\" level', () => {\n it.each([\n // prettier-ignore-start\n [LogLevel.debug],\n [LogLevel.error],\n [LogLevel.warn],\n [LogLevel.deprecation],\n [LogLevel.info],\n // prettier-ignore-end\n ])('should display \"INFO\" log when log level is set to \"%s\"', (logLevel: LogLevel) => {\n // given\n mocked(getLogLevel).mockReturnValue(logLevel);\n const event = getEventPayload(LogLevel.info);\n\n // when\n consoleLogger(event);\n\n // then\n expect(global.console.info).toHaveBeenCalledWith(expect.stringContaining('Hello!'));\n\n if (logLevel === LogLevel.debug) {\n // eslint-disable-next-line jest/no-conditional-expect\n expect(global.console.groupCollapsed).toHaveBeenCalled();\n } else {\n // eslint-disable-next-line jest/no-conditional-expect\n expect(global.console.groupCollapsed).not.toHaveBeenCalled();\n }\n });\n });\n});\n"]}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-underscore-dangle */
|
|
2
|
-
import { LogLevel } from './logger/logger';
|
|
3
|
-
/**
|
|
4
|
-
* Using async imports in order to test process.env.NODE_ENV usage in module
|
|
5
|
-
* https://stackoverflow.com/a/48042799
|
|
6
|
-
*/
|
|
7
|
-
describe('debug-state initialization', () => {
|
|
8
|
-
const ORIGINAL_NODE_ENV = process.env.NODE_ENV;
|
|
9
|
-
beforeEach(() => {
|
|
10
|
-
// reset NODE_ENV to whatever it was.
|
|
11
|
-
process.env.NODE_ENV = ORIGINAL_NODE_ENV;
|
|
12
|
-
// reset cache of loaded modules. This will ensure that the module is re-initialized
|
|
13
|
-
// with the new NODE_ENV value
|
|
14
|
-
delete window.____c_p_d;
|
|
15
|
-
jest.resetModules();
|
|
16
|
-
});
|
|
17
|
-
it('should be set to FALSE if process.env.NODE_ENV is "production"', async () => {
|
|
18
|
-
process.env.NODE_ENV = 'production';
|
|
19
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
20
|
-
const debugStateModule = await import('./debug-state');
|
|
21
|
-
expect(window.____c_p_d.__initialized).toBe(true);
|
|
22
|
-
expect(window.____c_p_d.debug).toBe(false);
|
|
23
|
-
expect(window.____c_p_d.logging).toBe(false);
|
|
24
|
-
expect(window.____c_p_d.validation).toBe(false);
|
|
25
|
-
expect(window.____c_p_d.discovery).toBe(false);
|
|
26
|
-
});
|
|
27
|
-
it('should set the default log level to "ERROR" if process.env.NODE_ENV is "production"', async () => {
|
|
28
|
-
process.env.NODE_ENV = 'production';
|
|
29
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
30
|
-
await import('./debug-state');
|
|
31
|
-
expect(window.____c_p_d.__initialized).toBe(true);
|
|
32
|
-
expect(window.____c_p_d.logLevel).toBe(LogLevel.error);
|
|
33
|
-
});
|
|
34
|
-
it('should be set the default log level to "INFO" if process.env.NODE_ENV is different than "production"', async () => {
|
|
35
|
-
process.env.NODE_ENV = 'development';
|
|
36
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
37
|
-
await import('./debug-state');
|
|
38
|
-
expect(window.____c_p_d.__initialized).toBe(true);
|
|
39
|
-
expect(window.____c_p_d.logLevel).toBe(LogLevel.info);
|
|
40
|
-
});
|
|
41
|
-
});
|
|
42
|
-
//# sourceMappingURL=debug-state-env.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"debug-state-env.test.js","sourceRoot":"","sources":["../../lib/debug-state-env.test.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C;;;GAGG;AACH,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IACxC,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;IAE/C,UAAU,CAAC,GAAG,EAAE;QACZ,qCAAqC;QACrC,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,iBAAiB,CAAC;QACzC,oFAAoF;QACpF,8BAA8B;QAC9B,OAAO,MAAM,CAAC,SAAS,CAAC;QACxB,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC5E,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,YAAY,CAAC;QAEpC,6DAA6D;QAC7D,MAAM,gBAAgB,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QAEvD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAElD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qFAAqF,EAAE,KAAK,IAAI,EAAE;QACjG,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,YAAY,CAAC;QAEpC,6DAA6D;QAC7D,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QAE9B,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sGAAsG,EAAE,KAAK,IAAI,EAAE;QAClH,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,aAAa,CAAC;QAErC,6DAA6D;QAC7D,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QAE9B,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["/* eslint-disable no-underscore-dangle */\nimport { LogLevel } from './logger/logger';\n\n/**\n * Using async imports in order to test process.env.NODE_ENV usage in module\n * https://stackoverflow.com/a/48042799\n */\ndescribe('debug-state initialization', () => {\n const ORIGINAL_NODE_ENV = process.env.NODE_ENV;\n\n beforeEach(() => {\n // reset NODE_ENV to whatever it was.\n process.env.NODE_ENV = ORIGINAL_NODE_ENV;\n // reset cache of loaded modules. This will ensure that the module is re-initialized\n // with the new NODE_ENV value\n delete window.____c_p_d;\n jest.resetModules();\n });\n\n it('should be set to FALSE if process.env.NODE_ENV is \"production\"', async () => {\n process.env.NODE_ENV = 'production';\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const debugStateModule = await import('./debug-state');\n\n expect(window.____c_p_d.__initialized).toBe(true);\n\n expect(window.____c_p_d.debug).toBe(false);\n expect(window.____c_p_d.logging).toBe(false);\n expect(window.____c_p_d.validation).toBe(false);\n expect(window.____c_p_d.discovery).toBe(false);\n });\n\n it('should set the default log level to \"ERROR\" if process.env.NODE_ENV is \"production\"', async () => {\n process.env.NODE_ENV = 'production';\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n await import('./debug-state');\n\n expect(window.____c_p_d.__initialized).toBe(true);\n expect(window.____c_p_d.logLevel).toBe(LogLevel.error);\n });\n\n it('should be set the default log level to \"INFO\" if process.env.NODE_ENV is different than \"production\"', async () => {\n process.env.NODE_ENV = 'development';\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n await import('./debug-state');\n\n expect(window.____c_p_d.__initialized).toBe(true);\n expect(window.____c_p_d.logLevel).toBe(LogLevel.info);\n });\n});\n"]}
|