@@ -30,15 +30,21 @@ const mockPinoFn = jest.fn((options: any) => {
3030
3131// Mock the pino module using doMock with moduleFactory
3232if ( pinoInstalled ) {
33- jest . doMock ( "pino" , ( ) => ( {
34- default : mockPinoFn ,
35- } ) , { virtual : true } ) ;
33+ jest . doMock (
34+ "pino" ,
35+ ( ) => ( {
36+ default : mockPinoFn ,
37+ } ) ,
38+ { virtual : true }
39+ ) ;
3640}
3741
3842describe ( "Pino Integration" , ( ) => {
3943 beforeAll ( ( ) => {
4044 if ( ! pinoInstalled ) {
41- console . log ( "Skipping Pino integration tests - pino not installed. Install with: npm install pino" ) ;
45+ console . log (
46+ "Skipping Pino integration tests - pino not installed. Install with: npm install pino"
47+ ) ;
4248 }
4349 } ) ;
4450 let reforge : Reforge ;
@@ -88,23 +94,29 @@ describe("Pino Integration", () => {
8894 } ) ;
8995
9096 describe ( "createPinoLogger" , ( ) => {
91- ( pinoInstalled ? it : it . skip ) ( "creates a Pino logger with the correct initial level" , async ( ) => {
92- const logger = await createPinoLogger ( reforge , "my.app.component" ) ;
97+ ( pinoInstalled ? it : it . skip ) (
98+ "creates a Pino logger with the correct initial level" ,
99+ async ( ) => {
100+ const logger = await createPinoLogger ( reforge , "my.app.component" ) ;
93101
94- expect ( logger ) . toBeDefined ( ) ;
95- expect ( logger . level ) . toBe ( "debug" ) ;
96- } ) ;
102+ expect ( logger ) . toBeDefined ( ) ;
103+ expect ( logger . level ) . toBe ( "debug" ) ;
104+ }
105+ ) ;
97106
98- ( pinoInstalled ? it : it . skip ) ( "includes the logger name in options" , async ( ) => {
99- await createPinoLogger ( reforge , "my.app.component" ) ;
107+ ( pinoInstalled ? it : it . skip ) (
108+ "includes the logger name in options" ,
109+ async ( ) => {
110+ await createPinoLogger ( reforge , "my.app.component" ) ;
100111
101- expect ( mockPinoFn ) . toHaveBeenCalledWith (
102- expect . objectContaining ( {
103- name : "my.app.component" ,
104- level : "debug" ,
105- } )
106- ) ;
107- } ) ;
112+ expect ( mockPinoFn ) . toHaveBeenCalledWith (
113+ expect . objectContaining ( {
114+ name : "my.app.component" ,
115+ level : "debug" ,
116+ } )
117+ ) ;
118+ }
119+ ) ;
108120
109121 ( pinoInstalled ? it : it . skip ) ( "merges custom Pino options" , async ( ) => {
110122 const customOptions = {
@@ -124,19 +136,79 @@ describe("Pino Integration", () => {
124136 ) ;
125137 } ) ;
126138
127- ( pinoInstalled ? it : it . skip ) ( "maps Reforge log levels to Pino levels correctly" , async ( ) => {
139+ ( pinoInstalled ? it : it . skip ) (
140+ "maps Reforge log levels to Pino levels correctly" ,
141+ async ( ) => {
142+ const testCases = [
143+ { reforge : LogLevel . Trace , pino : "trace" } ,
144+ { reforge : LogLevel . Debug , pino : "debug" } ,
145+ { reforge : LogLevel . Info , pino : "info" } ,
146+ { reforge : LogLevel . Warn , pino : "warn" } ,
147+ { reforge : LogLevel . Error , pino : "error" } ,
148+ { reforge : LogLevel . Fatal , pino : "fatal" } ,
149+ ] ;
150+
151+ for ( const testCase of testCases ) {
152+ // Update config for each level
153+ reforge . setConfig (
154+ [
155+ {
156+ id : "1" ,
157+ projectId : 1 ,
158+ key : "my.logger.config" ,
159+ changedBy : undefined ,
160+ rows : [
161+ {
162+ properties : { } ,
163+ projectEnvId : projectEnvIdUnderTest ,
164+ values : [
165+ {
166+ criteria : [ ] ,
167+ value : {
168+ logLevel : testCase . reforge ,
169+ } ,
170+ } ,
171+ ] ,
172+ } ,
173+ ] ,
174+ allowableValues : [ ] ,
175+ configType : "LOG_LEVEL_V2" as any ,
176+ valueType : "LOG_LEVEL" as any ,
177+ sendToClientSdk : false ,
178+ } ,
179+ ] ,
180+ projectEnvIdUnderTest ,
181+ new Map ( )
182+ ) ;
183+
184+ const logger = await createPinoLogger ( reforge , "my.app.component" ) ;
185+ expect ( logger . level ) . toBe ( testCase . pino ) ;
186+ }
187+ }
188+ ) ;
189+ } ) ;
190+
191+ describe ( "createPinoHook" , ( ) => {
192+ ( pinoInstalled ? it : it . skip ) (
193+ "returns a mixin function that includes the Reforge log level" ,
194+ ( ) => {
195+ const mixin = createPinoHook ( reforge , "my.app.component" ) ;
196+ const result = mixin ( ) ;
197+
198+ expect ( result ) . toHaveProperty ( "reforgeLogLevel" ) ;
199+ expect ( result [ "reforgeLogLevel" ] ) . toBe ( "debug" ) ;
200+ }
201+ ) ;
202+
203+ ( pinoInstalled ? it : it . skip ) (
204+ "updates when Reforge log level changes" ,
205+ ( ) => {
206+ const mixin = createPinoHook ( reforge , "my.app.component" ) ;
128207
129- const testCases = [
130- { reforge : LogLevel . Trace , pino : "trace" } ,
131- { reforge : LogLevel . Debug , pino : "debug" } ,
132- { reforge : LogLevel . Info , pino : "info" } ,
133- { reforge : LogLevel . Warn , pino : "warn" } ,
134- { reforge : LogLevel . Error , pino : "error" } ,
135- { reforge : LogLevel . Fatal , pino : "fatal" } ,
136- ] ;
208+ let result = mixin ( ) ;
209+ expect ( result [ "reforgeLogLevel" ] ) . toBe ( "debug" ) ;
137210
138- for ( const testCase of testCases ) {
139- // Update config for each level
211+ // Update the config
140212 reforge . setConfig (
141213 [
142214 {
@@ -152,7 +224,7 @@ describe("Pino Integration", () => {
152224 {
153225 criteria : [ ] ,
154226 value : {
155- logLevel : testCase . reforge ,
227+ logLevel : LogLevel . Error ,
156228 } ,
157229 } ,
158230 ] ,
@@ -168,61 +240,9 @@ describe("Pino Integration", () => {
168240 new Map ( )
169241 ) ;
170242
171- const logger = await createPinoLogger ( reforge , "my.app.component" ) ;
172- expect ( logger . level ) . toBe ( testCase . pino ) ;
243+ result = mixin ( ) ;
244+ expect ( result [ "reforgeLogLevel" ] ) . toBe ( "error" ) ;
173245 }
174- } ) ;
175- } ) ;
176-
177- describe ( "createPinoHook" , ( ) => {
178- ( pinoInstalled ? it : it . skip ) ( "returns a mixin function that includes the Reforge log level" , ( ) => {
179- const mixin = createPinoHook ( reforge , "my.app.component" ) ;
180- const result = mixin ( ) ;
181-
182- expect ( result ) . toHaveProperty ( "reforgeLogLevel" ) ;
183- expect ( result [ "reforgeLogLevel" ] ) . toBe ( "debug" ) ;
184- } ) ;
185-
186- ( pinoInstalled ? it : it . skip ) ( "updates when Reforge log level changes" , ( ) => {
187- const mixin = createPinoHook ( reforge , "my.app.component" ) ;
188-
189- let result = mixin ( ) ;
190- expect ( result [ "reforgeLogLevel" ] ) . toBe ( "debug" ) ;
191-
192- // Update the config
193- reforge . setConfig (
194- [
195- {
196- id : "1" ,
197- projectId : 1 ,
198- key : "my.logger.config" ,
199- changedBy : undefined ,
200- rows : [
201- {
202- properties : { } ,
203- projectEnvId : projectEnvIdUnderTest ,
204- values : [
205- {
206- criteria : [ ] ,
207- value : {
208- logLevel : LogLevel . Error ,
209- } ,
210- } ,
211- ] ,
212- } ,
213- ] ,
214- allowableValues : [ ] ,
215- configType : "LOG_LEVEL_V2" as any ,
216- valueType : "LOG_LEVEL" as any ,
217- sendToClientSdk : false ,
218- } ,
219- ] ,
220- projectEnvIdUnderTest ,
221- new Map ( )
222- ) ;
223-
224- result = mixin ( ) ;
225- expect ( result [ "reforgeLogLevel" ] ) . toBe ( "error" ) ;
226- } ) ;
246+ ) ;
227247 } ) ;
228248} ) ;
0 commit comments