@@ -33,6 +33,9 @@ describe('middlewares', () => {
33
33
} ) ;
34
34
35
35
it ( 'should use _ContentType if provided' , done => {
36
+ AppCachePut ( fakeReq . body . _ApplicationId , {
37
+ masterKeyIps : [ '127.0.0.1' ] ,
38
+ } ) ;
36
39
expect ( fakeReq . headers [ 'content-type' ] ) . toEqual ( undefined ) ;
37
40
const contentType = 'image/jpeg' ;
38
41
fakeReq . body . _ContentType = contentType ;
@@ -153,25 +156,23 @@ describe('middlewares', () => {
153
156
} ) ;
154
157
fakeReq . ip = '127.0.0.1' ;
155
158
fakeReq . headers [ 'x-parse-master-key' ] = 'masterKey' ;
156
- await new Promise ( resolve => middlewares . handleParseHeaders ( fakeReq , fakeRes , resolve ) ) ;
157
- expect ( fakeReq . auth . isMaster ) . toBe ( false ) ;
159
+
160
+ let error ;
161
+
162
+ try {
163
+ await new Promise ( resolve => middlewares . handleParseHeaders ( fakeReq , fakeRes , resolve ) ) ;
164
+ } catch ( err ) {
165
+ error = err ;
166
+ }
167
+
168
+ expect ( error ) . toBeDefined ( ) ;
169
+ expect ( error . message ) . toEqual ( `unauthorized` ) ;
158
170
expect ( logger . error ) . toHaveBeenCalledWith (
159
171
`Request using master key rejected as the request IP address '127.0.0.1' is not set in Parse Server option 'masterKeyIps'.`
160
172
) ;
161
173
} ) ;
162
174
163
- it ( 'should not succeed if the ip does not belong to masterKeyIps list' , async ( ) => {
164
- AppCachePut ( fakeReq . body . _ApplicationId , {
165
- masterKey : 'masterKey' ,
166
- masterKeyIps : [ '10.0.0.1' ] ,
167
- } ) ;
168
- fakeReq . ip = '127.0.0.1' ;
169
- fakeReq . headers [ 'x-parse-master-key' ] = 'masterKey' ;
170
- await new Promise ( resolve => middlewares . handleParseHeaders ( fakeReq , fakeRes , resolve ) ) ;
171
- expect ( fakeReq . auth . isMaster ) . toBe ( false ) ;
172
- } ) ;
173
-
174
- it ( 'should not succeed if the ip does not belong to maintenanceKeyIps list' , async ( ) => {
175
+ it ( 'should not succeed and log if the ip does not belong to maintenanceKeyIps list' , async ( ) => {
175
176
const logger = require ( '../lib/logger' ) . logger ;
176
177
spyOn ( logger , 'error' ) . and . callFake ( ( ) => { } ) ;
177
178
AppCachePut ( fakeReq . body . _ApplicationId , {
@@ -180,8 +181,17 @@ describe('middlewares', () => {
180
181
} ) ;
181
182
fakeReq . ip = '10.0.0.2' ;
182
183
fakeReq . headers [ 'x-parse-maintenance-key' ] = 'masterKey' ;
183
- await new Promise ( resolve => middlewares . handleParseHeaders ( fakeReq , fakeRes , resolve ) ) ;
184
- expect ( fakeReq . auth . isMaintenance ) . toBe ( false ) ;
184
+
185
+ let error ;
186
+
187
+ try {
188
+ await new Promise ( resolve => middlewares . handleParseHeaders ( fakeReq , fakeRes , resolve ) ) ;
189
+ } catch ( err ) {
190
+ error = err ;
191
+ }
192
+
193
+ expect ( error ) . toBeDefined ( ) ;
194
+ expect ( error . message ) . toEqual ( `unauthorized` ) ;
185
195
expect ( logger . error ) . toHaveBeenCalledWith (
186
196
`Request using maintenance key rejected as the request IP address '10.0.0.2' is not set in Parse Server option 'maintenanceKeyIps'.`
187
197
) ;
0 commit comments