Spaces:
Sleeping
Sleeping
File size: 2,675 Bytes
fea495a | 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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | "use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
const _posttelemetrypayload = require("./post-telemetry-payload");
describe('postNextTelemetryPayload', ()=>{
let originalFetch;
beforeEach(()=>{
originalFetch = global.fetch;
});
afterEach(()=>{
global.fetch = originalFetch;
});
it('sends telemetry payload successfully', async ()=>{
const mockFetch = jest.fn().mockResolvedValue({
ok: true
});
global.fetch = mockFetch;
const payload = {
meta: {
version: '1.0'
},
context: {
anonymousId: 'test-id',
projectId: 'test-project',
sessionId: 'test-session'
},
events: [
{
eventName: 'test-event',
fields: {
foo: 'bar'
}
}
]
};
await (0, _posttelemetrypayload.postNextTelemetryPayload)(payload);
expect(mockFetch).toHaveBeenCalledWith('https://telemetry.nextjs.org/api/v1/record', {
method: 'POST',
body: JSON.stringify(payload),
headers: {
'content-type': 'application/json'
},
signal: expect.any(AbortSignal)
});
});
it('retries on failure', async ()=>{
const mockFetch = jest.fn().mockRejectedValueOnce(new Error('Network error')).mockResolvedValueOnce({
ok: true
});
global.fetch = mockFetch;
const payload = {
meta: {},
context: {
anonymousId: 'test-id',
projectId: 'test-project',
sessionId: 'test-session'
},
events: []
};
await (0, _posttelemetrypayload.postNextTelemetryPayload)(payload);
expect(mockFetch).toHaveBeenCalledTimes(2);
});
it('swallows errors after retries exhausted', async ()=>{
const mockFetch = jest.fn().mockRejectedValue(new Error('Network error'));
global.fetch = mockFetch;
const payload = {
meta: {},
context: {
anonymousId: 'test-id',
projectId: 'test-project',
sessionId: 'test-session'
},
events: []
};
// Should not throw
await (0, _posttelemetrypayload.postNextTelemetryPayload)(payload);
expect(mockFetch).toHaveBeenCalledTimes(2) // Initial try + 1 retry
;
});
});
//# sourceMappingURL=post-telemetry-payload.test.js.map |