forked from Zizzamia/perfume.js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
measure.spec.ts
41 lines (35 loc) · 1.19 KB
/
measure.spec.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import { WP } from '../src/constants';
import * as measure from '../src/measure';
import mock from './_mock';
describe('measure', () => {
let spy: jest.SpyInstance;
beforeEach(() => {
(WP as any) = mock.performance();
});
afterEach(() => {
if (spy) {
spy.mockReset();
spy.mockRestore();
}
})
describe('.performanceMeasure()', () => {
it('should return entry.duration when entryType is not measure', () => {
WP.getEntriesByName = () =>
[{ duration: 12345, entryType: 'notMeasure' } as any] as any[];
const value = measure.performanceMeasure('metricName');
expect(value).toEqual(-1);
});
it('should return -1 when entryType is a measure', () => {
const value = measure.performanceMeasure('metricName');
expect(value).toEqual(12346);
});
it('should call window.performance.measure with the correct arguments', () => {
spy = jest.spyOn(WP, 'measure');
measure.performanceMeasure('fibonacci');
const start = 'mark_fibonacci_start';
const end = 'mark_fibonacci_end';
expect(spy.mock.calls.length).toBe(1);
expect(spy).toHaveBeenCalledWith('fibonacci', start, end);
});
});
});