Files
iptvnator/libs/shared/interfaces/src/lib/dev-logger.util.spec.ts
T
4gray 2d5c4fa4f9 chore: tighten validation and runtime logging
* chore: tighten validation and runtime logging

* fix(i18n): localize new settings labels
2026-05-15 17:43:42 +02:00

56 lines
1.6 KiB
TypeScript

import { createDevLogger } from './dev-logger.util';
describe('createDevLogger', () => {
const globalWithNgDevMode = globalThis as typeof globalThis & {
ngDevMode?: boolean;
};
const originalNgDevMode = globalWithNgDevMode.ngDevMode;
const originalNodeEnv = process.env['NODE_ENV'];
let debugSpy: jest.SpyInstance;
beforeEach(() => {
globalWithNgDevMode.ngDevMode = true;
process.env['NODE_ENV'] = 'development';
debugSpy = jest.spyOn(console, 'debug').mockImplementation();
});
afterEach(() => {
globalWithNgDevMode.ngDevMode = originalNgDevMode;
if (originalNodeEnv === undefined) {
delete process.env['NODE_ENV'];
} else {
process.env['NODE_ENV'] = originalNodeEnv;
}
debugSpy.mockRestore();
});
it('logs scoped debug output outside production and test mode', () => {
const debug = createDevLogger('Scope');
debug('message', { id: 1 });
expect(debugSpy).toHaveBeenCalledWith('[Scope]', 'message', {
id: 1,
});
});
it('suppresses debug output in Angular production mode', () => {
globalWithNgDevMode.ngDevMode = false;
const debug = createDevLogger('Scope');
debug('message');
expect(debugSpy).not.toHaveBeenCalled();
});
it('suppresses debug output during tests', () => {
process.env['NODE_ENV'] = 'test';
const debug = createDevLogger('Scope');
debug('message');
expect(debugSpy).not.toHaveBeenCalled();
});
});