test('#finish(finishTime) - transaction', setup(function (t) { const startTime = Date.now() - 1000 const finishTime = startTime + 2000.123 const tracer = new Tracer(getAgent()) const span = tracer.startSpan('foo', { startTime }) span.finish(finishTime) t.equal(span._span.timestamp, startTime * 1000) t.equal(span._span._timer.duration, 2000.123) t.equal(span._span.duration(), 2000.123) t.end() }))
test('#finish(finishTime) - span', setup(function (t) { const startTime = Date.now() - 1000 const finishTime = startTime + 2000.123 const tracer = new Tracer(getAgent()) tracer.startSpan('foo') const span = tracer.startSpan('bar', { startTime }) span.finish(finishTime) t.equal(span._span.timestamp, startTime * 1000) t.equal(span._span._timer.duration, 2000.123) t.equal(span._span.duration(), 2000.123) t.end() }))
test('log - error, but no details', setup(function (t) { const tracer = new Tracer(getAgent()) const captureError = tracer._agent.captureError tracer._agent.captureError = function () { t.fail('should not capture error if only the event log is set') } const span = tracer.startSpan() span.log({ event: 'error' }) t.equal(span._span._labels, null) tracer._agent.captureError = captureError t.end() }))
test('log - error, with string message', setup(function (t) { const tracer = new Tracer(getAgent()) const error = 'foo' const captureError = tracer._agent.captureError tracer._agent.captureError = function (capturedError, opts) { t.equal(capturedError, error) t.deepEqual(opts, { timestamp: undefined }) } const span = tracer.startSpan() span.log({ event: 'error', message: error }) t.equal(span._span._labels, null) tracer._agent.captureError = captureError t.end() }))
test('#startSpan(name, {startTime})', setup(function (t) { const startTime = Date.now() - 1000 const tracer = new Tracer(getAgent()) const span = tracer.startSpan('foo', { startTime }) t.equal(span._span.timestamp, startTime * 1000) t.end() }))
test('init', setup(function (t) { const tracer = new Tracer(getAgent()) const span = tracer.startSpan() t.equal(span._isTransaction, true) t.ok(span._span instanceof Transaction) t.end() }))
test('#setOperationName()', setup(function (t) { const tracer = new Tracer(getAgent()) const span = tracer.startSpan('foo') span.setOperationName('bar') t.equal(span._span.name, 'bar') t.end() }))