@@ -150,53 +150,81 @@ describe('Integration | Infrastructure | plugins | pino', function () {
150
150
} ) ;
151
151
152
152
context ( 'when calling /api/token' , function ( ) {
153
- it ( 'should log the message, version, user id, route, metrics and hashed username' , async function ( ) {
154
- // given
155
- const messages = [ ] ;
156
- await registerWithPlugin ( ( data ) => {
157
- messages . push ( data ) ;
153
+ context ( 'when there is a username' , function ( ) {
154
+ it ( 'logs the message, version, user id, route, metrics and hashed username' , async function ( ) {
155
+ // given
156
+ const messages = [ ] ;
157
+ await registerWithPlugin ( ( data ) => {
158
+ messages . push ( data ) ;
159
+ } ) ;
160
+
161
+ const method = 'POST' ;
162
+ const url = '/api/token' ;
163
+ const payload = {
164
+ username : 'toto' ,
165
+ } ;
166
+ const headers = { 'x-forwarded-proto' : 'https' , 'x-forwarded-host' : 'app.pix.org' } ;
167
+
168
+ // when
169
+ const response = await httpTestServer . request ( method , url , payload , null , headers ) ;
170
+
171
+ // then
172
+ expect ( response . statusCode ) . to . equal ( 200 ) ;
173
+ expect ( messages ) . to . have . lengthOf ( 1 ) ;
174
+ expect ( messages [ 0 ] . msg ) . to . equal ( 'request completed' ) ;
175
+ expect ( messages [ 0 ] . req . version ) . to . equal ( 'development' ) ;
176
+ expect ( messages [ 0 ] . req . user_id ) . to . equal ( '-' ) ;
177
+ expect ( messages [ 0 ] . req . route ) . to . equal ( '/api/token' ) ;
178
+ expect ( messages [ 0 ] . req . usernameHash ) . to . equal (
179
+ '31f7a65e315586ac198bd798b6629ce4903d0899476d5741a9f32e2e521b6a66' , // echo -n 'toto'| shasum -a 256
180
+ ) ;
158
181
} ) ;
182
+ } ) ;
159
183
160
- const method = 'POST' ;
161
- const url = '/api/token' ;
162
- const payload = {
163
- username : 'toto' ,
164
- } ;
165
-
166
- // when
167
- const response = await httpTestServer . request ( method , url , payload ) ;
168
- // then
169
- expect ( response . statusCode ) . to . equal ( 200 ) ;
170
- expect ( messages ) . to . have . lengthOf ( 1 ) ;
171
- expect ( messages [ 0 ] . msg ) . to . equal ( 'request completed' ) ;
172
- expect ( messages [ 0 ] . req . version ) . to . equal ( 'development' ) ;
173
- expect ( messages [ 0 ] . req . user_id ) . to . equal ( '-' ) ;
174
- expect ( messages [ 0 ] . req . route ) . to . equal ( '/api/token' ) ;
175
- expect ( messages [ 0 ] . req . usernameHash ) . to . equal (
176
- '31f7a65e315586ac198bd798b6629ce4903d0899476d5741a9f32e2e521b6a66' , // echo -n 'toto'| shasum -a 256
177
- ) ;
184
+ context ( 'when there is no username' , function ( ) {
185
+ it ( 'logs the message, version, user id, route, metrics and default value for username' , async function ( ) {
186
+ // given
187
+ const messages = [ ] ;
188
+ await registerWithPlugin ( ( data ) => {
189
+ messages . push ( data ) ;
190
+ } ) ;
191
+ const method = 'POST' ;
192
+ const url = '/api/token' ;
193
+ const headers = { 'x-forwarded-proto' : 'https' , 'x-forwarded-host' : 'app.pix.org' } ;
194
+
195
+ // when
196
+ const response = await httpTestServer . request ( method , url , null , null , headers ) ;
197
+
198
+ // then
199
+ expect ( response . statusCode ) . to . equal ( 200 ) ;
200
+ expect ( messages ) . to . have . lengthOf ( 1 ) ;
201
+ expect ( messages [ 0 ] . msg ) . to . equal ( 'request completed' ) ;
202
+ expect ( messages [ 0 ] . req . version ) . to . equal ( 'development' ) ;
203
+ expect ( messages [ 0 ] . req . user_id ) . to . equal ( '-' ) ;
204
+ expect ( messages [ 0 ] . req . route ) . to . equal ( '/api/token' ) ;
205
+ expect ( messages [ 0 ] . req . usernameHash ) . to . equal ( '-' ) ;
206
+ } ) ;
178
207
} ) ;
179
208
180
- it ( 'should log the message, version, user id, route, metrics and default value for username when not specified' , async function ( ) {
181
- // given
182
- const messages = [ ] ;
183
- await registerWithPlugin ( ( data ) => {
184
- messages . push ( data ) ;
209
+ context ( 'when there is no forwarded origin (no x-forwarded headers)' , function ( ) {
210
+ it ( 'handles the ForwardedOriginError error' , async function ( ) {
211
+ // given
212
+ const messages = [ ] ;
213
+ await registerWithPlugin ( ( data ) => {
214
+ messages . push ( data ) ;
215
+ } ) ;
216
+ const method = 'POST' ;
217
+ const url = '/api/token' ;
218
+ const noForwardedHeaders = { } ;
219
+
220
+ // when
221
+ const response = await httpTestServer . request ( method , url , null , null , noForwardedHeaders ) ;
222
+
223
+ // then
224
+ expect ( response . statusCode ) . to . equal ( 200 ) ;
225
+ expect ( messages ) . to . have . lengthOf ( 1 ) ;
226
+ expect ( messages [ 0 ] . msg ) . to . equal ( 'request completed' ) ;
185
227
} ) ;
186
- const method = 'POST' ;
187
- const url = '/api/token' ;
188
-
189
- // when
190
- const response = await httpTestServer . request ( method , url ) ;
191
-
192
- // then
193
- expect ( response . statusCode ) . to . equal ( 200 ) ;
194
- expect ( messages ) . to . have . lengthOf ( 1 ) ;
195
- expect ( messages [ 0 ] . msg ) . to . equal ( 'request completed' ) ;
196
- expect ( messages [ 0 ] . req . version ) . to . equal ( 'development' ) ;
197
- expect ( messages [ 0 ] . req . user_id ) . to . equal ( '-' ) ;
198
- expect ( messages [ 0 ] . req . route ) . to . equal ( '/api/token' ) ;
199
- expect ( messages [ 0 ] . req . usernameHash ) . to . equal ( '-' ) ;
200
228
} ) ;
201
229
} ) ;
202
230
} ) ;
0 commit comments