Remove select
[ProtonMail-WebClient.git] / packages / metrics / tests / Counter.test.ts
bloba1fd4e2fce0d12424665a3d80d2662085f4a125b
1 import Counter from '../lib/Counter';
2 import MetricsApi from '../lib/MetricsApi';
3 import MetricsRequestService from '../lib/MetricsRequestService';
4 import type MetricSchema from '../lib/types/MetricSchema';
6 jest.mock('../lib/MetricsApi');
7 const metricsApi = new MetricsApi();
9 jest.mock('../lib/MetricsRequestService');
10 const metricsRequestService = new MetricsRequestService(metricsApi, { reportMetrics: true });
12 interface DefaultMetricSchema extends MetricSchema {
13     Labels: {
14         foo: 'bar';
15     };
18 const time = new Date('2020-01-01');
20 describe('Counter', () => {
21     beforeAll(() => {
22         jest.useFakeTimers();
23     });
25     beforeEach(() => {
26         jest.clearAllTimers();
27         jest.setSystemTime(time);
28     });
30     afterAll(() => {
31         jest.useRealTimers();
32     });
34     it('construct correct metric report', () => {
35         const name = 'name';
36         const version = 1;
37         const counter = new Counter<DefaultMetricSchema>({ name, version }, metricsRequestService);
39         counter.increment({ foo: 'bar' });
41         expect(metricsRequestService.report).toHaveBeenCalledWith({
42             Name: name,
43             Version: version,
44             Timestamp: time.getTime() / 1000,
45             Data: {
46                 Value: 1,
47                 Labels: { foo: 'bar' },
48             },
49         });
50     });
51 });