@@ -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