Define global logger instance to be used for all logging
Summary: The advantage of this is that anyone can now log without needing to carry around a Logger object. Primary reason is for making metrics less intrusive in the codebase. Reviewed By: passy Differential Revision: D13671368 fbshipit-source-id: 162ab1351a124683aef13983fc3bcec01385cd1a
This commit is contained in:
committed by
Facebook Github Bot
parent
e71804fe9e
commit
3bcb079f87
@@ -1,58 +0,0 @@
|
||||
/**
|
||||
* Copyright 2018-present Facebook.
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
* @format
|
||||
*/
|
||||
import {recordSuccessMetric} from '../metrics';
|
||||
import type Logger from '../../fb-stubs/Logger';
|
||||
|
||||
//$FlowFixMe pretend logger is the right type
|
||||
const logger: Logger = {
|
||||
track: jest.fn(),
|
||||
};
|
||||
|
||||
beforeAll(() => {
|
||||
logger.track.mockClear();
|
||||
});
|
||||
|
||||
test('Wrapping a successful promise preserves result and logs correctly', () => {
|
||||
const successPromise = Promise.resolve('Yay!');
|
||||
const wrappedPromise = recordSuccessMetric(
|
||||
successPromise,
|
||||
'test metric',
|
||||
logger,
|
||||
);
|
||||
return wrappedPromise
|
||||
.then(wrappedValue => {
|
||||
expect(wrappedValue).toBe('Yay!');
|
||||
})
|
||||
.then(() => {
|
||||
expect(logger.track).toHaveBeenCalledWith(
|
||||
'success-rate',
|
||||
'test metric',
|
||||
1,
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
test('Wrapping a rejected promise preserves result and logs correctly', () => {
|
||||
const successPromise = Promise.reject('Oh no!');
|
||||
const wrappedPromise = recordSuccessMetric(
|
||||
successPromise,
|
||||
'test metric',
|
||||
logger,
|
||||
);
|
||||
expect.assertions(2); // Make sure to fail if catch block isn't visited
|
||||
return wrappedPromise
|
||||
.catch(wrappedValue => {
|
||||
expect(wrappedValue).toBe('Oh no!');
|
||||
})
|
||||
.then(() => {
|
||||
expect(logger.track).toHaveBeenCalledWith(
|
||||
'success-rate',
|
||||
'test metric',
|
||||
0,
|
||||
);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user