mirror of
https://github.com/Koenkk/zigbee2mqtt.git
synced 2026-09-17 02:04:21 +00:00
* Improve log performance
* Bug fix
* Revert sample configuration
* Align package versions
* Revert dependecies version to allow testing
* Update package-lock.json
* Fix prettier issue
* Coverage to 100%
* Fix CR comments
* remove uneeded changes
* Make the same perf optimization to the MQTT messages
* Fix MQTT tests
* prettier fix
* Allow easy mocking of stub logger callTransports function to receive the actual message
* cleanup leftover
* Fix prettier issues
* Finalize logger mock structure and add few lambda log calls
* fix prettier issue
* Run prettier
* Revert "fix prettier issue"
This reverts commit b409d538e3.
* Update zigbee.ts
Fix prettier issue
* Fix test issues
* Revert await removal
49 lines
1.9 KiB
JavaScript
49 lines
1.9 KiB
JavaScript
let level = 'info';
|
|
let debugNamespaceIgnore = '';
|
|
let namespacedLevels = {};
|
|
let transports = [];
|
|
let transportsEnabled = false;
|
|
|
|
const getMessage = (messageOrLambda) => (messageOrLambda instanceof Function ? messageOrLambda() : messageOrLambda);
|
|
const mock = {
|
|
log: jest.fn().mockImplementation((level, message, namespace = 'z2m') => {
|
|
if (transportsEnabled) {
|
|
for (const transport of transports) {
|
|
transport.log({level, message, namespace}, () => {});
|
|
}
|
|
}
|
|
}),
|
|
init: jest.fn(),
|
|
info: jest.fn().mockImplementation((messageOrLambda, namespace = 'z2m') => mock.log('info', getMessage(messageOrLambda), namespace)),
|
|
warning: jest.fn().mockImplementation((messageOrLambda, namespace = 'z2m') => mock.log('warning', getMessage(messageOrLambda), namespace)),
|
|
error: jest.fn().mockImplementation((messageOrLambda, namespace = 'z2m') => mock.log('error', getMessage(messageOrLambda), namespace)),
|
|
debug: jest.fn().mockImplementation((messageOrLambda, namespace = 'z2m') => mock.log('debug', getMessage(messageOrLambda), namespace)),
|
|
cleanup: jest.fn(),
|
|
logOutput: jest.fn(),
|
|
add: (transport) => transports.push(transport),
|
|
addTransport: (transport) => transports.push(transport),
|
|
removeTransport: (transport) => {
|
|
transports = transports.filter((t) => t !== transport);
|
|
},
|
|
setLevel: (newLevel) => {
|
|
level = newLevel;
|
|
},
|
|
getLevel: () => level,
|
|
setNamespacedLevels: (nsLevels) => {
|
|
namespacedLevels = nsLevels;
|
|
},
|
|
getNamespacedLevels: () => namespacedLevels,
|
|
setDebugNamespaceIgnore: (newIgnore) => {
|
|
debugNamespaceIgnore = newIgnore;
|
|
},
|
|
getDebugNamespaceIgnore: () => debugNamespaceIgnore,
|
|
setTransportsEnabled: (value) => {
|
|
transportsEnabled = value;
|
|
},
|
|
end: jest.fn(),
|
|
};
|
|
|
|
jest.mock('../../lib/util/logger', () => mock);
|
|
|
|
module.exports = {...mock};
|