@@ -3531,8 +3531,7 @@ describe('afterLogin hook', () => {
3531
3531
} ) ;
3532
3532
3533
3533
describe ( 'saveFile hooks' , ( ) => {
3534
- fit ( 'find hooks should run' , async ( ) => {
3535
- await reconfigureServer ( { silent : false } ) ;
3534
+ it ( 'find hooks should run' , async ( ) => {
3536
3535
const file = new Parse . File ( 'popeye.txt' , [ 1 , 2 , 3 ] , 'text/plain' ) ;
3537
3536
await file . save ( { useMasterKey : true } ) ;
3538
3537
const user = await Parse . User . signUp ( 'username' , 'password' ) ;
@@ -3550,6 +3549,7 @@ describe('saveFile hooks', () => {
3550
3549
expect ( req . triggerName ) . toBe ( 'afterFind' ) ;
3551
3550
expect ( req . master ) . toBeFalse ( ) ;
3552
3551
expect ( req . log ) . toBeDefined ( ) ;
3552
+ expect ( req . forceDownload ) . toBeFalse ( ) ;
3553
3553
} ,
3554
3554
} ;
3555
3555
for ( const hook in hooks ) {
@@ -3569,8 +3569,7 @@ describe('saveFile hooks', () => {
3569
3569
}
3570
3570
} ) ;
3571
3571
3572
- fit ( 'beforeFind can throw' , async ( ) => {
3573
- await reconfigureServer ( { silent : false } ) ;
3572
+ it ( 'beforeFind can throw' , async ( ) => {
3574
3573
const file = new Parse . File ( 'popeye.txt' , [ 1 , 2 , 3 ] , 'text/plain' ) ;
3575
3574
await file . save ( { useMasterKey : true } ) ;
3576
3575
const user = await Parse . User . signUp ( 'username' , 'password' ) ;
@@ -3601,8 +3600,7 @@ describe('saveFile hooks', () => {
3601
3600
expect ( hooks . afterFind ) . not . toHaveBeenCalled ( ) ;
3602
3601
} ) ;
3603
3602
3604
- fit ( 'afterFind can throw' , async ( ) => {
3605
- await reconfigureServer ( { silent : false } ) ;
3603
+ it ( 'afterFind can throw' , async ( ) => {
3606
3604
const file = new Parse . File ( 'popeye.txt' , [ 1 , 2 , 3 ] , 'text/plain' ) ;
3607
3605
await file . save ( { useMasterKey : true } ) ;
3608
3606
const user = await Parse . User . signUp ( 'username' , 'password' ) ;
@@ -3633,6 +3631,24 @@ describe('saveFile hooks', () => {
3633
3631
}
3634
3632
} ) ;
3635
3633
3634
+ it ( 'can force download' , async ( ) => {
3635
+ const file = new Parse . File ( 'popeye.txt' , [ 1 , 2 , 3 ] , 'text/plain' ) ;
3636
+ await file . save ( { useMasterKey : true } ) ;
3637
+ const user = await Parse . User . signUp ( 'username' , 'password' ) ;
3638
+ Parse . Cloud . afterFind ( Parse . File , req => {
3639
+ req . forceDownload = true ;
3640
+ } ) ;
3641
+ const response = await request ( {
3642
+ url : file . url ( ) ,
3643
+ headers : {
3644
+ 'X-Parse-Application-Id' : 'test' ,
3645
+ 'X-Parse-REST-API-Key' : 'rest' ,
3646
+ 'X-Parse-Session-Token' : user . getSessionToken ( ) ,
3647
+ } ,
3648
+ } ) ;
3649
+ expect ( response . headers [ 'content-disposition' ] ) . toBe ( `attachment;filename=${ file . _name } ` ) ;
3650
+ } ) ;
3651
+
3636
3652
it ( 'beforeSaveFile should return file that is already saved and not save anything to files adapter' , async ( ) => {
3637
3653
await reconfigureServer ( { filesAdapter : mockAdapter } ) ;
3638
3654
const createFileSpy = spyOn ( mockAdapter , 'createFile' ) . and . callThrough ( ) ;
0 commit comments