Skip to content

Commit

Permalink
hoist interceptors and log stubs
Browse files Browse the repository at this point in the history
  • Loading branch information
tlhunter committed Jun 15, 2023
1 parent ef02e5c commit e453ab7
Showing 1 changed file with 16 additions and 20 deletions.
36 changes: 16 additions & 20 deletions packages/dd-trace/src/external-logger/test/index.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ const tracerLogger = require('../../log')

describe('External Logger', () => {
let externalLogger
let interceptor
let errorLog

beforeEach(() => {
const V2LogWriter = require('../src')
Expand All @@ -20,12 +22,20 @@ describe('External Logger', () => {
interval: 10000,
timeout: 5000
})

errorLog = sinon.spy(tracerLogger, 'error')
})

afterEach(() => {
interceptor.done()
errorLog.restore()
})

it('should properly encode the log message', (done) => {
let request
const currentTime = Date.now()
const interceptor = nock('https://http-intake.logs.datadoghq.com:443')

interceptor = nock('https://http-intake.logs.datadoghq.com:443')
.post('/api/v2/logs')
.reply((_uri, req, cb) => {
request = req
Expand Down Expand Up @@ -66,37 +76,29 @@ describe('External Logger', () => {
expect(request[0]).to.have.property('ddsource', 'logging_from_space')
expect(request[0]).to.have.property('ddtags', 'env:external_logger,version:1.2.3,service:external')
} catch (e) {
setImmediate(() => {
interceptor.done()
done(e)
})
done(e)
return
}

setImmediate(() => {
interceptor.done()
done(err)
})
done(err)
})
})

it('should empty the buffer when calling flush', (done) => {
const interceptor = nock('https://http-intake.logs.datadoghq.com:443')
interceptor = nock('https://http-intake.logs.datadoghq.com:443')
.post('/api/v2/logs')
.reply(202, {})

externalLogger.enqueue({})
expect(externalLogger.buffer.length).to.equal(1)

externalLogger.flush((err) => {
interceptor.done()
expect(externalLogger.buffer.length).to.equal(0)
done(err)
})
})

it('tracer logger should handle error response codes from Logs API', (done) => {
const errorLog = sinon.spy(tracerLogger, 'error')

const V2LogWriter = proxyquire('../src', {
'../../log': {
Expand All @@ -110,14 +112,12 @@ describe('External Logger', () => {
apiKey: 'API_KEY_PLACEHOLDER',
interval: 5000
})
const interceptor = nock('https://http-intake.logs.datadoghq.com:443')
interceptor = nock('https://http-intake.logs.datadoghq.com:443')
.post('/api/v2/logs')
.reply(400, {})

logger.enqueue({})
logger.flush((err) => {
interceptor.done()
errorLog.restore()
expect(err).to.be.true
expect(errorLog.getCall(0).args[0]).to.be.equal(
'failed to send 1 logs, received response code 400'
Expand All @@ -127,8 +127,6 @@ describe('External Logger', () => {
})

it('tracer logger should handle client side error', (done) => {
const errorLog = sinon.spy(tracerLogger, 'error')

const V2LogWriter = proxyquire('../src', {
'../../log': {
error: errorLog
Expand All @@ -142,14 +140,12 @@ describe('External Logger', () => {
interval: 5000
})

const interceptor = nock('https://http-intake.logs.datadoghq.com:443')
interceptor = nock('https://http-intake.logs.datadoghq.com:443')
.post('/api/v2/logs')
.replyWithError('missing API key')

logger.enqueue({})
logger.flush((err) => {
interceptor.done()
errorLog.restore()
expect(err).to.be.an.instanceOf(Error)
expect(errorLog.getCall(0).args[0]).to.be.equal(
'failed to send 1 log(s), with error missing API key'
Expand Down

0 comments on commit e453ab7

Please sign in to comment.