@@ -20,71 +20,54 @@ test('can create named logger', () => {
2020 expect ( logger ) . toBeDefined ( ) ;
2121} ) ;
2222
23- test ( 'can use custom stream' , ( ) => {
24- const loggerWrites = jest . fn ( ) ;
25- const logger = loggerFactory ( {
26- streams : [
27- {
28- stream : new Writable ( {
29- write : ( chunk , encoding , next ) => {
30- const json = JSON . parse ( chunk ) ;
31- expect ( json . message ) . toBe ( 'Hello' ) ;
32- loggerWrites ( ) ;
33- next ( ) ;
34- } ,
35- } ) ,
36- } ,
37- ] ,
38- } ) ;
39-
40- logger . info ( 'Hello' ) ;
41- expect ( loggerWrites ) . toBeCalled ( ) ;
23+ const testWriteStream = ( resolve , assert ) => ( {
24+ stream : new Writable ( {
25+ write : ( chunk , encoding , next ) => {
26+ const json = JSON . parse ( chunk ) ;
27+ assert ( json ) ;
28+ next ( ) ;
29+ resolve ( ) ;
30+ } ,
31+ } ) ,
4232} ) ;
4333
44- test ( 'can use warning level' , ( ) => {
45- const loggerWrites = jest . fn ( ) ;
46- const logger = loggerFactory ( {
47- streams : [
48- {
49- stream : new Writable ( {
50- write : ( chunk , encoding , next ) => {
51- const json = JSON . parse ( chunk ) ;
52- expect ( json . message ) . toBe ( 'Hello' ) ;
53- expect ( json . level ) . toBe ( levels . warn ) ;
54- loggerWrites ( ) ;
55- next ( ) ;
56- } ,
34+ test ( 'can use custom stream' , ( ) =>
35+ new Promise ( ( resolve , reject ) => {
36+ const logger = loggerFactory ( {
37+ streams : [ testWriteStream ( resolve , json => expect ( json . message ) . toBe ( 'Hello' ) ) ] ,
38+ } ) ;
39+
40+ logger . info ( 'Hello' ) ;
41+ } ) ) ;
42+
43+ test ( 'can use warning level' , ( ) =>
44+ new Promise ( ( resolve , reject ) => {
45+ const logger = loggerFactory ( {
46+ streams : [
47+ testWriteStream ( resolve , json => {
48+ expect ( json . message ) . toBe ( 'Hello' ) ;
49+ expect ( json . level ) . toBe ( levels . warn ) ;
5750 } ) ,
58- } ,
59- ] ,
60- } ) ;
51+ ] ,
52+ } ) ;
6153
62- logger . warning ( 'Hello' ) ;
63- expect ( loggerWrites ) . toBeCalled ( ) ;
64- } ) ;
54+ logger . warning ( 'Hello' ) ;
55+ } ) ) ;
6556
66- test ( 'child logger has warning level' , ( ) => {
67- const loggerWrites = jest . fn ( ) ;
68- loggerFactory ( {
69- streams : [
70- {
71- stream : new Writable ( {
72- write : ( chunk , encoding , next ) => {
73- const json = JSON . parse ( chunk ) ;
74- expect ( json . message ) . toBe ( 'Hello' ) ;
75- expect ( json . level ) . toBe ( levels . warn ) ;
76- loggerWrites ( ) ;
77- next ( ) ;
78- } ,
57+ test ( 'child logger has warning level' , ( ) =>
58+ new Promise ( ( resolve , reject ) => {
59+ loggerFactory ( {
60+ streams : [
61+ testWriteStream ( resolve , json => {
62+ expect ( json . message ) . toBe ( 'Hello' ) ;
63+ expect ( json . level ) . toBe ( levels . warn ) ;
7964 } ) ,
80- } ,
81- ] ,
82- } ) ;
83- const childLogger = loggerFactory ( 'child' ) ;
65+ ] ,
66+ } ) ;
67+ const childLogger = loggerFactory ( 'child' ) ;
8468
85- childLogger . warning ( 'Hello' ) ;
86- expect ( loggerWrites ) . toBeCalled ( ) ;
87- } ) ;
69+ childLogger . warning ( 'Hello' ) ;
70+ } ) ) ;
8871
8972test ( 'express binds' , ( ) => {
9073 const logger = loggerFactory ( ) ;
@@ -94,29 +77,16 @@ test('express binds', () => {
9477 return request . get ( '/' ) ;
9578} ) ;
9679
97- test ( 'GET requests are logged by default' , ( ) => {
98- const loggerWrites = jest . fn ( ) ;
99- const logger = loggerFactory ( {
100- streams : [
101- {
102- stream : new Writable ( {
103- write : ( chunk , encoding , next ) => {
104- const json = JSON . parse ( chunk ) ;
105- expect ( json . req . method ) . toBe ( 'GET' ) ;
106- loggerWrites ( ) ;
107- next ( ) ;
108- } ,
109- } ) ,
110- } ,
111- ] ,
112- } ) ;
113- const app = express ( ) ;
114- const request = supertest ( app ) ;
115- app . use ( logger . express ) ;
116- return request . get ( '/' ) . then ( ( ) => {
117- expect ( loggerWrites ) . toBeCalled ( ) ;
118- } ) ;
119- } ) ;
80+ test ( 'GET requests are logged by default' , ( ) =>
81+ new Promise ( ( resolve , reject ) => {
82+ const logger = loggerFactory ( {
83+ streams : [ testWriteStream ( resolve , json => expect ( json . req . method ) . toBe ( 'GET' ) ) ] ,
84+ } ) ;
85+ const app = express ( ) ;
86+ const request = supertest ( app ) ;
87+ app . use ( logger . express ) ;
88+ request . get ( '/' ) . then ( ( ) => null ) ;
89+ } ) ) ;
12090
12191test ( 'OPTIONS requests are ignored by default' , ( ) => {
12292 const loggerWrites = jest . fn ( ) ;
@@ -165,69 +135,33 @@ test('OPTIONS requests are ignored by default', () => {
165135 } ) ;
166136} ) ;
167137
168- test ( 'severity field is automatically added to log object' , ( ) => {
169- const loggerWrites = jest . fn ( ) ;
170- const logger = loggerFactory ( {
171- streams : [
172- {
173- stream : new Writable ( {
174- write : ( chunk , encoding , next ) => {
175- const json = JSON . parse ( chunk ) ;
176- expect ( json . severity ) . toBe ( 'CRITICAL' ) ;
177- loggerWrites ( ) ;
178- next ( ) ;
179- } ,
180- } ) ,
181- } ,
182- ] ,
183- } ) ;
138+ test ( 'severity field is automatically added to log object' , ( ) =>
139+ new Promise ( ( resolve , reject ) => {
140+ const logger = loggerFactory ( {
141+ streams : [ testWriteStream ( resolve , json => expect ( json . severity ) . toBe ( 'CRITICAL' ) ) ] ,
142+ } ) ;
184143
185- logger . fatal ( 'Hello' ) ;
186- expect ( loggerWrites ) . toBeCalled ( ) ;
187- } ) ;
144+ logger . fatal ( 'Hello' ) ;
145+ } ) ) ;
188146
189- test ( 'automatic severity field can be disabled by options' , ( ) => {
190- const loggerWrites = jest . fn ( ) ;
191- const logger = loggerFactory ( {
192- disableStackdriverFormat : true ,
193- streams : [
194- {
195- stream : new Writable ( {
196- write : ( chunk , encoding , next ) => {
197- const json = JSON . parse ( chunk ) ;
198- expect ( json . severity ) . toBe ( undefined ) ;
199- loggerWrites ( ) ;
200- next ( ) ;
201- } ,
202- } ) ,
203- } ,
204- ] ,
205- } ) ;
147+ test ( 'automatic severity field can be disabled by options' , ( ) =>
148+ new Promise ( ( resolve , reject ) => {
149+ const logger = loggerFactory ( {
150+ disableStackdriverFormat : true ,
151+ streams : [ testWriteStream ( resolve , json => expect ( json . severity ) . toBe ( undefined ) ) ] ,
152+ } ) ;
206153
207- logger . fatal ( 'Hello' ) ;
208- expect ( loggerWrites ) . toBeCalled ( ) ;
209- } ) ;
154+ logger . fatal ( 'Hello' ) ;
155+ } ) ) ;
210156
211- test ( 'logger version is logged' , ( ) => {
212- const loggerWrites = jest . fn ( ) ;
213- const logger = loggerFactory ( {
214- streams : [
215- {
216- stream : new Writable ( {
217- write : ( chunk , encoding , next ) => {
218- const json = JSON . parse ( chunk ) ;
219- expect ( json . pkgVersion ) . not . toBe ( undefined ) ;
220- loggerWrites ( ) ;
221- next ( ) ;
222- } ,
223- } ) ,
224- } ,
225- ] ,
226- } ) ;
157+ test ( 'logger version is logged' , ( ) =>
158+ new Promise ( ( resolve , reject ) => {
159+ const logger = loggerFactory ( {
160+ streams : [ testWriteStream ( resolve , json => expect ( json . pkgVersion ) . not . toBe ( undefined ) ) ] ,
161+ } ) ;
227162
228- logger . fatal ( 'Hello' ) ;
229- expect ( loggerWrites ) . toBeCalled ( ) ;
230- } ) ;
163+ logger . fatal ( 'Hello' ) ;
164+ } ) ) ;
231165
232166test ( 'silent stream does not write' , ( ) => {
233167 const loggerWrites = jest . fn ( ) ;
@@ -236,7 +170,6 @@ test('silent stream does not write', () => {
236170 {
237171 stream : new Writable ( {
238172 write : ( chunk , encoding , next ) => {
239- const json = JSON . parse ( chunk ) ;
240173 loggerWrites ( ) ;
241174 next ( ) ;
242175 } ,
0 commit comments