@@ -6,12 +6,15 @@ const { expect } = require('chai')
66const semver = require ( 'semver' )
77const nock = require ( 'nock' )
88const sinon = require ( 'sinon' )
9+ const { spawn } = require ( 'child_process' )
910
1011const agent = require ( '../../dd-trace/test/plugins/agent' )
1112const { DogStatsDClient } = require ( '../../dd-trace/src/dogstatsd' )
12- const ExternalLogger = require ( '../../dd-trace/src/external-logger/src' )
13+ const { NoopExternalLogger } = require ( '../../dd-trace/src/external-logger/src' )
1314const Sampler = require ( '../../dd-trace/src/sampler' )
1415
16+ const tracerRequirePath = '../../dd-trace'
17+
1518describe ( 'Plugin' , ( ) => {
1619 let openai
1720 let clock
@@ -20,8 +23,10 @@ describe('Plugin', () => {
2023
2124 describe ( 'openai' , ( ) => {
2225 withVersions ( 'openai' , 'openai' , version => {
26+ const moduleRequirePath = `../../../versions/openai@${ version } `
27+
2328 beforeEach ( ( ) => {
24- require ( '../../dd-trace' )
29+ require ( tracerRequirePath )
2530 } )
2631
2732 before ( ( ) => {
@@ -34,7 +39,7 @@ describe('Plugin', () => {
3439
3540 beforeEach ( ( ) => {
3641 clock = sinon . useFakeTimers ( )
37- const { Configuration, OpenAIApi } = require ( `../../../versions/openai@ ${ version } ` ) . get ( )
42+ const { Configuration, OpenAIApi } = require ( moduleRequirePath ) . get ( )
3843
3944 const configuration = new Configuration ( {
4045 apiKey : 'sk-DATADOG-ACCEPTANCE-TESTS'
@@ -43,7 +48,7 @@ describe('Plugin', () => {
4348 openai = new OpenAIApi ( configuration )
4449
4550 metricStub = sinon . stub ( DogStatsDClient . prototype , '_add' )
46- externalLoggerStub = sinon . stub ( ExternalLogger . prototype , 'log' )
51+ externalLoggerStub = sinon . stub ( NoopExternalLogger . prototype , 'log' )
4752 sinon . stub ( Sampler . prototype , 'isSampled' ) . returns ( true )
4853 } )
4954
@@ -52,6 +57,20 @@ describe('Plugin', () => {
5257 sinon . restore ( )
5358 } )
5459
60+ describe ( 'without initialization' , ( ) => {
61+ it ( 'should not error' , ( done ) => {
62+ spawn ( 'node' , [ 'no-init' ] , {
63+ cwd : __dirname ,
64+ stdio : 'inherit' ,
65+ env : {
66+ ...process . env ,
67+ PATH_TO_DDTRACE : tracerRequirePath ,
68+ PATH_TO_OPENAI : moduleRequirePath
69+ }
70+ } ) . on ( 'exit' , done ) // non-zero exit status fails test
71+ } )
72+ } )
73+
5574 describe ( 'createCompletion()' , ( ) => {
5675 let scope
5776
0 commit comments