UNPKG

next

Version:

The React Framework

63 lines (62 loc) 2.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const _promises = require("fs/promises"); const _ = require("."); const _shared = require("../shared"); const _path = require("path"); const _os = require("os"); const TRACE_EVENT = { name: 'test-span', duration: 321, timestamp: Date.now(), id: 127, startTime: Date.now() }; const WEBPACK_INVALIDATED_EVENT = { name: 'webpack-invalidated', duration: 100, timestamp: Date.now(), id: 112, startTime: Date.now() }; describe('Trace Reporter', ()=>{ describe('JSON reporter', ()=>{ it('should write the trace events to JSON file', async ()=>{ const tmpDir = await (0, _promises.mkdtemp)((0, _path.join)((0, _os.tmpdir)(), 'json-reporter')); (0, _shared.setGlobal)('distDir', tmpDir); (0, _shared.setGlobal)('phase', 'anything'); _.reporter.report(TRACE_EVENT); await _.reporter.flushAll(); const traceFilename = (0, _path.join)(tmpDir, 'trace'); const traces = JSON.parse(await (0, _promises.readFile)(traceFilename, 'utf-8')); expect(traces.length).toEqual(1); expect(traces[0].name).toEqual('test-span'); expect(traces[0].id).toEqual(127); expect(traces[0].duration).toEqual(321); expect(traces[0].traceId).toBeDefined(); }); }); describe('Telemetry reporter', ()=>{ it('should record telemetry event', async ()=>{ const recordMock = jest.fn(); const telemetryMock = { record: recordMock }; (0, _shared.setGlobal)('telemetry', telemetryMock); // This should be ignored. _.reporter.report(TRACE_EVENT); expect(recordMock).toHaveBeenCalledTimes(0); _.reporter.report(WEBPACK_INVALIDATED_EVENT); expect(recordMock).toHaveBeenCalledTimes(1); expect(recordMock).toHaveBeenCalledWith({ eventName: 'WEBPACK_INVALIDATED', payload: { durationInMicroseconds: 100 } }); }); }); }); //# sourceMappingURL=index.test.js.map