@@ -513,3 +513,132 @@ it('does not revaldata when data is unchanged', async () => {
513513 expect ( requests ) . toBe ( 2 )
514514 vi . advanceTimersByTime ( 1500 )
515515} )
516+
517+ it ( 'overrides request method url with config url' , async ( ) => {
518+ expect . assertions ( 5 )
519+
520+ let config
521+ axios . request . mockImplementation ( ( c ) => {
522+ config = c
523+ return Promise . resolve ( { headers : { precognition : 'true' } , status : 204 , data : 'data' } )
524+ } )
525+
526+ await client . get ( 'https://laravel.com' , { } , {
527+ url : 'https://forge.laravel.com' ,
528+ } )
529+ expect ( config . url ) . toBe ( 'https://forge.laravel.com' )
530+
531+ await client . post ( 'https://laravel.com' , { } , {
532+ url : 'https://forge.laravel.com' ,
533+ } )
534+ expect ( config . url ) . toBe ( 'https://forge.laravel.com' )
535+
536+ await client . patch ( 'https://laravel.com' , { } , {
537+ url : 'https://forge.laravel.com' ,
538+ } )
539+ expect ( config . url ) . toBe ( 'https://forge.laravel.com' )
540+
541+ await client . put ( 'https://laravel.com' , { } , {
542+ url : 'https://forge.laravel.com' ,
543+ } )
544+ expect ( config . url ) . toBe ( 'https://forge.laravel.com' )
545+
546+ await client . delete ( 'https://laravel.com' , { } , {
547+ url : 'https://forge.laravel.com' ,
548+ } )
549+ expect ( config . url ) . toBe ( 'https://forge.laravel.com' )
550+ } )
551+
552+ it ( 'overrides the request data with the config data' , async ( ) => {
553+ expect . assertions ( 5 )
554+
555+ let config
556+ axios . request . mockImplementation ( ( c ) => {
557+ config = c
558+ return Promise . resolve ( { headers : { precognition : 'true' } , status : 204 , data : 'data' } )
559+ } )
560+
561+ await client . get ( 'https://laravel.com' , { expected : false } , {
562+ data : { expected : true }
563+ } )
564+ expect ( config . data ) . toEqual ( { expected : true } )
565+
566+ await client . post ( 'https://laravel.com' , { expected : false } , {
567+ data : { expected : true }
568+ } )
569+ expect ( config . data ) . toEqual ( { expected : true } )
570+
571+ await client . patch ( 'https://laravel.com' , { expected : false } , {
572+ data : { expected : true }
573+ } )
574+ expect ( config . data ) . toEqual ( { expected : true } )
575+
576+ await client . put ( 'https://laravel.com' , { expected : false } , {
577+ data : { expected : true }
578+ } )
579+ expect ( config . data ) . toEqual ( { expected : true } )
580+
581+ await client . delete ( 'https://laravel.com' , { expected : false } , {
582+ data : { expected : true }
583+ } )
584+ expect ( config . data ) . toEqual ( { expected : true } )
585+ } )
586+
587+ it ( 'merges request data with config data' , async ( ) => {
588+ expect . assertions ( 7 )
589+
590+ let config
591+ axios . request . mockImplementation ( ( c ) => {
592+ config = c
593+ return Promise . resolve ( { headers : { precognition : 'true' } , status : 204 , data : 'data' } )
594+ } )
595+
596+ await client . get ( 'https://laravel.com' , { request : true } , {
597+ data : { config : true }
598+ } )
599+ expect ( config . data ) . toEqual ( { config : true } )
600+ expect ( config . params ) . toEqual ( { request : true } )
601+
602+ await client . post ( 'https://laravel.com' , { request : true } , {
603+ data : { config : true }
604+ } )
605+ expect ( config . data ) . toEqual ( { request : true , config : true } )
606+
607+ await client . patch ( 'https://laravel.com' , { request : true } , {
608+ data : { config : true }
609+ } )
610+ expect ( config . data ) . toEqual ( { request : true , config : true } )
611+
612+ await client . put ( 'https://laravel.com' , { request : true } , {
613+ data : { config : true }
614+ } )
615+ expect ( config . data ) . toEqual ( { request : true , config : true } )
616+
617+ await client . delete ( 'https://laravel.com' , { request : true } , {
618+ data : { config : true }
619+ } )
620+ expect ( config . data ) . toEqual ( { config : true } )
621+ expect ( config . params ) . toEqual ( { request : true } )
622+ } )
623+
624+ it ( 'merges request data with config params for get and delete requests' , async ( ) => {
625+ expect . assertions ( 4 )
626+
627+ let config
628+ axios . request . mockImplementation ( ( c ) => {
629+ config = c
630+ return Promise . resolve ( { headers : { precognition : 'true' } , status : 204 , data : 'data' } )
631+ } )
632+
633+ await client . get ( 'https://laravel.com' , { data : true } , {
634+ params : { param : true }
635+ } )
636+ expect ( config . params ) . toEqual ( { data : true , param : true } )
637+ expect ( config . data ) . toBeUndefined ( )
638+
639+ await client . delete ( 'https://laravel.com' , { data : true } , {
640+ params : { param : true }
641+ } )
642+ expect ( config . params ) . toEqual ( { data : true , param : true } )
643+ expect ( config . data ) . toBeUndefined ( )
644+ } )
0 commit comments