@@ -842,6 +842,51 @@ test('Shimmer with logger mock', async (t) => {
842
842
)
843
843
} )
844
844
845
+ test ( 'Shimmer subscriber setup/teardown' , async ( t ) => {
846
+ t . beforeEach ( ( ctx ) => {
847
+ ctx . nr = { }
848
+ const sandbox = sinon . createSandbox ( )
849
+ const loggerMock = require ( './mocks/logger' ) ( sandbox )
850
+ const shimmer = proxyquire ( '../../lib/shimmer' , {
851
+ './logger' : {
852
+ child : sandbox . stub ( ) . callsFake ( ( ) => loggerMock )
853
+ }
854
+ } )
855
+ const agent = helper . loadMockedAgent ( { } , true )
856
+ agent . config . instrumentation . pino . enabled = false
857
+ agent . config . instrumentation . ioredis . enabled = true
858
+ ctx . nr = {
859
+ agent,
860
+ sandbox,
861
+ shimmer,
862
+ loggerMock
863
+ }
864
+ } )
865
+
866
+ t . afterEach ( ( ctx ) => {
867
+ const { agent, sandbox, shimmer } = ctx . nr
868
+ sandbox . restore ( )
869
+ clearCachedModules ( [ TEST_MODULE_RELATIVE_PATH ] )
870
+ helper . unloadAgent ( agent , shimmer )
871
+ } )
872
+
873
+ await t . test ( 'should setup subscribers that are enabled' , ( t ) => {
874
+ const { agent, shimmer } = t . nr
875
+ assert . ok ( ! shimmer . _subscribers , 'should not have subscribers before setup' )
876
+ shimmer . setupSubscribers ( agent )
877
+ assert . ok ( ! shimmer . _subscribers [ 'orchestrion:pino:nr_asJson' ] )
878
+ assert . ok ( shimmer . _subscribers [ 'orchestrion:ioredis:nr_sendCommand' ] )
879
+ } )
880
+
881
+ await t . test ( 'should teardown subscribers that are enabled' , ( t ) => {
882
+ const { agent, shimmer } = t . nr
883
+ assert . ok ( ! shimmer . _subscribers , 'should not have subscribers before setup' )
884
+ shimmer . setupSubscribers ( agent )
885
+ shimmer . teardownSubscribers ( )
886
+ assert . deepEqual ( shimmer . _subscribers , { } , 'should not have subscribers after teardown' )
887
+ } )
888
+ } )
889
+
845
890
function clearCachedModules ( modules ) {
846
891
modules . forEach ( ( moduleName ) => {
847
892
try {
0 commit comments