@@ -160,3 +160,59 @@ test('mixin can use level number', async ({ ok, same }) => {
160160 stack : 'stack'
161161 } , 'test' )
162162} )
163+
164+ test ( 'mixin receives logger as third parameter' , async ( { ok, same } ) => {
165+ const stream = sink ( )
166+ const instance = pino ( {
167+ mixin ( context , num , logger ) {
168+ ok ( logger !== null , 'logger should be defined' )
169+ ok ( logger !== undefined , 'logger should be defined' )
170+ same ( logger , instance )
171+ return { ...context , num }
172+ }
173+ } , stream )
174+ instance . level = name
175+ instance [ name ] ( {
176+ message : '123'
177+ } , 'test' )
178+ } )
179+
180+ test ( 'mixin receives child logger' , async ( { ok, same } ) => {
181+ const stream = sink ( )
182+ let child = null
183+ const instance = pino ( {
184+ mixin ( context , num , logger ) {
185+ ok ( logger !== null , 'logger should be defined' )
186+ ok ( logger !== undefined , 'logger should be defined' )
187+ same ( logger . expected , child . expected )
188+ return { ...context , num }
189+ }
190+ } , stream )
191+ instance . level = name
192+ instance . expected = false
193+ child = instance . child ( { } )
194+ child . expected = true
195+ child [ name ] ( {
196+ message : '123'
197+ } , 'test' )
198+ } )
199+
200+ test ( 'mixin receives logger even if child exists' , async ( { ok, same } ) => {
201+ const stream = sink ( )
202+ let child = null
203+ const instance = pino ( {
204+ mixin ( context , num , logger ) {
205+ ok ( logger !== null , 'logger should be defined' )
206+ ok ( logger !== undefined , 'logger should be defined' )
207+ same ( logger . expected , instance . expected )
208+ return { ...context , num }
209+ }
210+ } , stream )
211+ instance . level = name
212+ instance . expected = false
213+ child = instance . child ( { } )
214+ child . expected = true
215+ instance [ name ] ( {
216+ message : '123'
217+ } , 'test' )
218+ } )
0 commit comments