Spaces:
Sleeping
Sleeping
| ; | |
| 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 |