UNPKG

hawkly

Version:
109 lines 11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const sinon = require("sinon"); const index_1 = require("./index"); const ava_1 = require("ava"); // Helper function to generate a random integer function getRandomInt(min, max) { return Math.floor(Math.random() * (max - min + 1)) + min; } // This file contains tests for the public interface ava_1.test('Single Span', (t) => tslib_1.__awaiter(this, void 0, void 0, function* () { const recordCallback = sinon.spy(); const operationName = 'test1'; const tracer = new index_1.Tracer({ accessToken: 'testAccessToken', componentName: 'indexSpec/singleSpan', recordCallback, }); const x = getRandomInt(2, 50); const y = getRandomInt(2, 50); const span = tracer.startSpan(operationName); span.logEvent('receivedInput', { x, y }); const result = x + y; span.logEvent('finishedCalculation'); span.finish(); t.true(result === x + y); t.true(recordCallback.calledOnce); // Check the report object is intact O_O t.true(recordCallback.args[0][0].operationName === operationName); t.true(typeof recordCallback.args[0][0].traceId === 'string', 'traceId is not a string'); t.true(typeof recordCallback.args[0][0].spanId === 'string', 'spanId is not a string'); })); ava_1.test('Span with single childOf', (t) => tslib_1.__awaiter(this, void 0, void 0, function* () { const recordCallback = sinon.spy(); const operationName = 'test2'; const tracer = new index_1.Tracer({ accessToken: 'testAccessToken', componentName: 'indexSpec/SpanWithSingleChild', recordCallback, }); const x = getRandomInt(2, 50); const y = getRandomInt(2, 50); const z = getRandomInt(2, 50); // create the first span const parentSpan = tracer.startSpan(operationName); parentSpan.logEvent('receivedInput', { x, y }); const result = x + y; // Run our second operation in an async function function childFunction(parentSpan, result) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const childSpan = tracer.startSpan('childOf2', { childOf: parentSpan }); const _childResult = result * z; childSpan.logEvent('completed math'); childSpan.finish(); return _childResult; }); } const childResult = yield childFunction(parentSpan, result); parentSpan.logEvent('finishedCalculation', { childResult }); parentSpan.finish(); // t.true(result === x + y); t.true(recordCallback.calledTwice); })); ava_1.test('Span with single followsFrom', (t) => tslib_1.__awaiter(this, void 0, void 0, function* () { const operationName = 'test3'; const recordCallback = sinon.spy(); const tracer = new index_1.Tracer({ accessToken: 'testAccessToken', componentName: 'indexSpec/SpanWithSingleFollowsFrom', recordCallback, }); // create the first span const parentSpan = tracer.startSpan(operationName); const childSpan = tracer.startSpan('followsFrom', { followsFrom: parentSpan }); childSpan.logEvent('created the child span'); parentSpan.finish(); childSpan.finish(); // t.true(result === x + y); t.true(recordCallback.calledTwice); t.is(parentSpan.context().referenceType, 'root'); t.is(childSpan.context().referenceType, 'followsFrom'); t.is(childSpan.context().parentId, parentSpan.context().spanId); t.is(childSpan.context().traceId, parentSpan.context().traceId); })); ava_1.test('Span with single followsFrom and childOf', (t) => tslib_1.__awaiter(this, void 0, void 0, function* () { const operationName = 'test3'; const recordCallback = sinon.spy(); const tracer = new index_1.Tracer({ accessToken: 'testAccessToken', componentName: 'indexSpec/SpanWithSingleFollowsFrom', recordCallback, }); // create the first span const grandParentSpan = tracer.startSpan(operationName); const parentSpan = tracer.startSpan(operationName, { childOf: grandParentSpan }); const childSpan = tracer.startSpan('followsFrom', { followsFrom: parentSpan }); parentSpan.finish(); grandParentSpan.finish(); childSpan.finish(); t.true(recordCallback.calledThrice); t.is(grandParentSpan.context().referenceType, 'root'); t.is(parentSpan.context().referenceType, 'childOf'); t.is(parentSpan.context().parentId, grandParentSpan.context().spanId); t.is(childSpan.context().referenceType, 'followsFrom'); t.is(childSpan.context().parentId, parentSpan.context().spanId); t.is(childSpan.context().traceId, parentSpan.context().traceId, grandParentSpan.context().traceId); })); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleC5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtCQUErQjtBQUUvQixtQ0FBaUM7QUFDakMsNkJBQTJCO0FBRTNCLCtDQUErQztBQUMvQyxzQkFBc0IsR0FBVyxFQUFFLEdBQVc7SUFDNUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUMzRCxDQUFDO0FBRUQsb0RBQW9EO0FBRXBELFVBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBTyxDQUFNO0lBQy9CLE1BQU0sY0FBYyxHQUFRLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUN4QyxNQUFNLGFBQWEsR0FBVyxPQUFPLENBQUM7SUFFdEMsTUFBTSxNQUFNLEdBQVEsSUFBSSxjQUFNLENBQUM7UUFDN0IsV0FBVyxFQUFFLGlCQUFpQjtRQUM5QixhQUFhLEVBQUUsc0JBQXNCO1FBQ3JDLGNBQWM7S0FDZixDQUFDLENBQUM7SUFHSCxNQUFNLENBQUMsR0FBVyxZQUFZLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLE1BQU0sQ0FBQyxHQUFXLFlBQVksQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFdEMsTUFBTSxJQUFJLEdBQVEsTUFBTSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNsRCxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sTUFBTSxHQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3JDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUVkLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN6QixDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUVsQyx3Q0FBd0M7SUFDeEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsS0FBSyxhQUFhLENBQUMsQ0FBQztJQUNsRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssUUFBUSxFQUFFLHlCQUF5QixDQUFDLENBQUM7SUFDekYsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLFFBQVEsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO0FBQ3pGLENBQUMsQ0FBQSxDQUFDLENBQUM7QUFFSCxVQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBTyxDQUFNO0lBQzVDLE1BQU0sY0FBYyxHQUFRLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUN4QyxNQUFNLGFBQWEsR0FBVyxPQUFPLENBQUM7SUFFdEMsTUFBTSxNQUFNLEdBQVEsSUFBSSxjQUFNLENBQUM7UUFDN0IsV0FBVyxFQUFFLGlCQUFpQjtRQUM5QixhQUFhLEVBQUUsK0JBQStCO1FBQzlDLGNBQWM7S0FDZixDQUFDLENBQUM7SUFHSCxNQUFNLENBQUMsR0FBVyxZQUFZLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLE1BQU0sQ0FBQyxHQUFXLFlBQVksQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEMsTUFBTSxDQUFDLEdBQVcsWUFBWSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUV0Qyx3QkFBd0I7SUFDeEIsTUFBTSxVQUFVLEdBQVEsTUFBTSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN4RCxVQUFVLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRS9DLE1BQU0sTUFBTSxHQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0IsZ0RBQWdEO0lBQ2hELHVCQUE2QixVQUFlLEVBQUUsTUFBYzs7WUFDMUQsTUFBTSxTQUFTLEdBQVEsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUU3RSxNQUFNLFlBQVksR0FBVyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBRXhDLFNBQVMsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUNyQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFbkIsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUN0QixDQUFDO0tBQUE7SUFDRCxNQUFNLFdBQVcsR0FBVyxNQUFNLGFBQWEsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFcEUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDNUQsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBRXBCLDRCQUE0QjtJQUM1QixDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUVyQyxDQUFDLENBQUEsQ0FBQyxDQUFDO0FBR0gsVUFBSSxDQUFDLDhCQUE4QixFQUFFLENBQU8sQ0FBTTtJQUNoRCxNQUFNLGFBQWEsR0FBVyxPQUFPLENBQUM7SUFDdEMsTUFBTSxjQUFjLEdBQVEsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBRXhDLE1BQU0sTUFBTSxHQUFRLElBQUksY0FBTSxDQUFDO1FBQzdCLFdBQVcsRUFBRSxpQkFBaUI7UUFDOUIsYUFBYSxFQUFFLHFDQUFxQztRQUNwRCxjQUFjO0tBQ2YsQ0FBQyxDQUFDO0lBRUgsd0JBQXdCO0lBQ3hCLE1BQU0sVUFBVSxHQUFRLE1BQU0sQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7SUFFeEQsTUFBTSxTQUFTLEdBQVEsTUFBTSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUNwRixTQUFTLENBQUMsUUFBUSxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDN0MsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBRXBCLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNuQiw0QkFBNEI7SUFDNUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2pELENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUN2RCxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hFLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7QUFFbEUsQ0FBQyxDQUFBLENBQUMsQ0FBQztBQUdILFVBQUksQ0FBQywwQ0FBMEMsRUFBRSxDQUFPLENBQU07SUFDNUQsTUFBTSxhQUFhLEdBQVcsT0FBTyxDQUFDO0lBQ3RDLE1BQU0sY0FBYyxHQUFRLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUV4QyxNQUFNLE1BQU0sR0FBUSxJQUFJLGNBQU0sQ0FBQztRQUM3QixXQUFXLEVBQUUsaUJBQWlCO1FBQzlCLGFBQWEsRUFBRSxxQ0FBcUM7UUFDcEQsY0FBYztLQUNmLENBQUMsQ0FBQztJQUVILHdCQUF3QjtJQUN4QixNQUFNLGVBQWUsR0FBUSxNQUFNLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzdELE1BQU0sVUFBVSxHQUFRLE1BQU0sQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDdEYsTUFBTSxTQUFTLEdBQVEsTUFBTSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUNwRixVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDcEIsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3pCLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUVuQixDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNwQyxDQUFDLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdEQsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3BELENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZELENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBRXJHLENBQUMsQ0FBQSxDQUFDLENBQUMifQ==