Skip to content

Commit f001290

Browse files
committed
fix(test): ci environment doesn't handle replacing console with a mock
1 parent 7b1c5b3 commit f001290

File tree

1 file changed

+122
-102
lines changed

1 file changed

+122
-102
lines changed

packages/opentelemetry-api/test/diag/consoleLogger.test.ts

+122-102
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,16 @@ describe('DiagConsoleLogger', () => {
3232
let errorCalledArgs: unknown;
3333
let logCalledArgs: unknown;
3434

35+
let canMockConsole = true;
36+
37+
try {
38+
// eslint-disable-next-line no-global-assign
39+
console = origConsole;
40+
} catch (ex) {
41+
// Not supported on CI pipeline (works locally)
42+
canMockConsole = false;
43+
}
44+
3545
beforeEach(() => {
3646
// mock
3747
console.debug = (...args: unknown[]) => {
@@ -62,8 +72,16 @@ describe('DiagConsoleLogger', () => {
6272
errorCalledArgs = null;
6373
logCalledArgs = null;
6474
traceCalledArgs = null;
65-
// eslint-disable-next-line no-global-assign
66-
console = origConsole;
75+
76+
if (canMockConsole) {
77+
try {
78+
// eslint-disable-next-line no-global-assign
79+
console = origConsole;
80+
} catch (ex) {
81+
// Not supported on CI pipeline
82+
canMockConsole = false;
83+
}
84+
}
6785
console.debug = origDebug;
6886
console.info = origInfo;
6987
console.warn = origWarn;
@@ -221,110 +239,112 @@ describe('DiagConsoleLogger', () => {
221239
]);
222240
});
223241

224-
it('should not throw even when console is not supported', () => {
225-
(console as any) = undefined;
226-
const consoleLogger = new DiagConsoleLogger();
227-
consoleLogger.terminal('terminal called %s', 'param1');
228-
assert.deepStrictEqual(errorCalledArgs, null);
229-
consoleLogger.critical('critical called %s', 'param1');
230-
assert.deepStrictEqual(errorCalledArgs, null);
231-
consoleLogger.error('error called %s', 'param1');
232-
assert.deepStrictEqual(errorCalledArgs, null);
233-
consoleLogger.warn('warn called %s', 'param1');
234-
assert.deepStrictEqual(warnCalledArgs, null);
235-
consoleLogger.info('info called %s', 'param1');
236-
assert.deepStrictEqual(infoCalledArgs, null);
237-
consoleLogger.debug('debug called %s', 'param1');
238-
assert.deepStrictEqual(debugCalledArgs, null);
239-
consoleLogger.trace('trace called %s', 'param1');
240-
assert.deepStrictEqual(traceCalledArgs, null);
241-
assert.deepStrictEqual(logCalledArgs, null);
242-
consoleLogger.forcedInfo('forcedInfo called %s', 'param1');
243-
assert.deepStrictEqual(infoCalledArgs, null);
244-
});
242+
if (canMockConsole) {
243+
it('should not throw even when console is not supported', () => {
244+
(console as any) = undefined;
245+
const consoleLogger = new DiagConsoleLogger();
246+
consoleLogger.terminal('terminal called %s', 'param1');
247+
assert.deepStrictEqual(errorCalledArgs, null);
248+
consoleLogger.critical('critical called %s', 'param1');
249+
assert.deepStrictEqual(errorCalledArgs, null);
250+
consoleLogger.error('error called %s', 'param1');
251+
assert.deepStrictEqual(errorCalledArgs, null);
252+
consoleLogger.warn('warn called %s', 'param1');
253+
assert.deepStrictEqual(warnCalledArgs, null);
254+
consoleLogger.info('info called %s', 'param1');
255+
assert.deepStrictEqual(infoCalledArgs, null);
256+
consoleLogger.debug('debug called %s', 'param1');
257+
assert.deepStrictEqual(debugCalledArgs, null);
258+
consoleLogger.trace('trace called %s', 'param1');
259+
assert.deepStrictEqual(traceCalledArgs, null);
260+
assert.deepStrictEqual(logCalledArgs, null);
261+
consoleLogger.forcedInfo('forcedInfo called %s', 'param1');
262+
assert.deepStrictEqual(infoCalledArgs, null);
263+
});
245264

246-
it('should not throw even when console is disabled after construction', () => {
247-
const consoleLogger = new DiagConsoleLogger();
248-
(console as any) = undefined;
249-
consoleLogger.terminal('terminal called %s', 'param1');
250-
assert.deepStrictEqual(errorCalledArgs, null);
251-
consoleLogger.critical('critical called %s', 'param1');
252-
assert.deepStrictEqual(errorCalledArgs, null);
253-
consoleLogger.error('error called %s', 'param1');
254-
assert.deepStrictEqual(errorCalledArgs, null);
255-
consoleLogger.warn('warn called %s', 'param1');
256-
assert.deepStrictEqual(warnCalledArgs, null);
257-
consoleLogger.info('info called %s', 'param1');
258-
assert.deepStrictEqual(infoCalledArgs, null);
259-
consoleLogger.debug('debug called %s', 'param1');
260-
assert.deepStrictEqual(debugCalledArgs, null);
261-
consoleLogger.trace('trace called %s', 'param1');
262-
assert.deepStrictEqual(traceCalledArgs, null);
263-
assert.deepStrictEqual(logCalledArgs, null);
264-
consoleLogger.forcedInfo('forcedInfo called %s', 'param1');
265-
assert.deepStrictEqual(infoCalledArgs, null);
266-
});
265+
it('should not throw even when console is disabled after construction', () => {
266+
const consoleLogger = new DiagConsoleLogger();
267+
(console as any) = undefined;
268+
consoleLogger.terminal('terminal called %s', 'param1');
269+
assert.deepStrictEqual(errorCalledArgs, null);
270+
consoleLogger.critical('critical called %s', 'param1');
271+
assert.deepStrictEqual(errorCalledArgs, null);
272+
consoleLogger.error('error called %s', 'param1');
273+
assert.deepStrictEqual(errorCalledArgs, null);
274+
consoleLogger.warn('warn called %s', 'param1');
275+
assert.deepStrictEqual(warnCalledArgs, null);
276+
consoleLogger.info('info called %s', 'param1');
277+
assert.deepStrictEqual(infoCalledArgs, null);
278+
consoleLogger.debug('debug called %s', 'param1');
279+
assert.deepStrictEqual(debugCalledArgs, null);
280+
consoleLogger.trace('trace called %s', 'param1');
281+
assert.deepStrictEqual(traceCalledArgs, null);
282+
assert.deepStrictEqual(logCalledArgs, null);
283+
consoleLogger.forcedInfo('forcedInfo called %s', 'param1');
284+
assert.deepStrictEqual(infoCalledArgs, null);
285+
});
267286

268-
it('should not throw even when console is invalid after construction', () => {
269-
const invalidConsole = {
270-
debug: 1,
271-
warn: 2,
272-
error: 3,
273-
trace: 4,
274-
info: 5,
275-
log: 6,
276-
};
287+
it('should not throw even when console is invalid after construction', () => {
288+
const invalidConsole = {
289+
debug: 1,
290+
warn: 2,
291+
error: 3,
292+
trace: 4,
293+
info: 5,
294+
log: 6,
295+
};
277296

278-
const consoleLogger = new DiagConsoleLogger();
279-
(console as any) = invalidConsole;
280-
consoleLogger.terminal('terminal called %s', 'param1');
281-
assert.deepStrictEqual(errorCalledArgs, null);
282-
consoleLogger.critical('critical called %s', 'param1');
283-
assert.deepStrictEqual(errorCalledArgs, null);
284-
consoleLogger.error('error called %s', 'param1');
285-
assert.deepStrictEqual(errorCalledArgs, null);
286-
consoleLogger.warn('warn called %s', 'param1');
287-
assert.deepStrictEqual(warnCalledArgs, null);
288-
consoleLogger.info('info called %s', 'param1');
289-
assert.deepStrictEqual(infoCalledArgs, null);
290-
consoleLogger.debug('debug called %s', 'param1');
291-
assert.deepStrictEqual(debugCalledArgs, null);
292-
consoleLogger.trace('trace called %s', 'param1');
293-
assert.deepStrictEqual(traceCalledArgs, null);
294-
assert.deepStrictEqual(logCalledArgs, null);
295-
consoleLogger.forcedInfo('forcedInfo called %s', 'param1');
296-
assert.deepStrictEqual(infoCalledArgs, null);
297-
});
297+
const consoleLogger = new DiagConsoleLogger();
298+
(console as any) = invalidConsole;
299+
consoleLogger.terminal('terminal called %s', 'param1');
300+
assert.deepStrictEqual(errorCalledArgs, null);
301+
consoleLogger.critical('critical called %s', 'param1');
302+
assert.deepStrictEqual(errorCalledArgs, null);
303+
consoleLogger.error('error called %s', 'param1');
304+
assert.deepStrictEqual(errorCalledArgs, null);
305+
consoleLogger.warn('warn called %s', 'param1');
306+
assert.deepStrictEqual(warnCalledArgs, null);
307+
consoleLogger.info('info called %s', 'param1');
308+
assert.deepStrictEqual(infoCalledArgs, null);
309+
consoleLogger.debug('debug called %s', 'param1');
310+
assert.deepStrictEqual(debugCalledArgs, null);
311+
consoleLogger.trace('trace called %s', 'param1');
312+
assert.deepStrictEqual(traceCalledArgs, null);
313+
assert.deepStrictEqual(logCalledArgs, null);
314+
consoleLogger.forcedInfo('forcedInfo called %s', 'param1');
315+
assert.deepStrictEqual(infoCalledArgs, null);
316+
});
298317

299-
it('should not throw even when console is invalid before construction', () => {
300-
const invalidConsole = {
301-
debug: 1,
302-
warn: 2,
303-
error: 3,
304-
trace: 4,
305-
info: 5,
306-
log: 6,
307-
};
318+
it('should not throw even when console is invalid before construction', () => {
319+
const invalidConsole = {
320+
debug: 1,
321+
warn: 2,
322+
error: 3,
323+
trace: 4,
324+
info: 5,
325+
log: 6,
326+
};
308327

309-
(console as any) = invalidConsole;
310-
const consoleLogger = new DiagConsoleLogger();
311-
consoleLogger.terminal('terminal called %s', 'param1');
312-
assert.deepStrictEqual(errorCalledArgs, null);
313-
consoleLogger.critical('critical called %s', 'param1');
314-
assert.deepStrictEqual(errorCalledArgs, null);
315-
consoleLogger.error('error called %s', 'param1');
316-
assert.deepStrictEqual(errorCalledArgs, null);
317-
consoleLogger.warn('warn called %s', 'param1');
318-
assert.deepStrictEqual(warnCalledArgs, null);
319-
consoleLogger.info('info called %s', 'param1');
320-
assert.deepStrictEqual(infoCalledArgs, null);
321-
consoleLogger.debug('debug called %s', 'param1');
322-
assert.deepStrictEqual(debugCalledArgs, null);
323-
consoleLogger.trace('trace called %s', 'param1');
324-
assert.deepStrictEqual(traceCalledArgs, null);
325-
assert.deepStrictEqual(logCalledArgs, null);
326-
consoleLogger.forcedInfo('forcedInfo called %s', 'param1');
327-
assert.deepStrictEqual(infoCalledArgs, null);
328-
});
328+
(console as any) = invalidConsole;
329+
const consoleLogger = new DiagConsoleLogger();
330+
consoleLogger.terminal('terminal called %s', 'param1');
331+
assert.deepStrictEqual(errorCalledArgs, null);
332+
consoleLogger.critical('critical called %s', 'param1');
333+
assert.deepStrictEqual(errorCalledArgs, null);
334+
consoleLogger.error('error called %s', 'param1');
335+
assert.deepStrictEqual(errorCalledArgs, null);
336+
consoleLogger.warn('warn called %s', 'param1');
337+
assert.deepStrictEqual(warnCalledArgs, null);
338+
consoleLogger.info('info called %s', 'param1');
339+
assert.deepStrictEqual(infoCalledArgs, null);
340+
consoleLogger.debug('debug called %s', 'param1');
341+
assert.deepStrictEqual(debugCalledArgs, null);
342+
consoleLogger.trace('trace called %s', 'param1');
343+
assert.deepStrictEqual(traceCalledArgs, null);
344+
assert.deepStrictEqual(logCalledArgs, null);
345+
consoleLogger.forcedInfo('forcedInfo called %s', 'param1');
346+
assert.deepStrictEqual(infoCalledArgs, null);
347+
});
348+
}
329349
});
330350
});

0 commit comments

Comments
 (0)