@@ -2,7 +2,8 @@ import {render, screen} from '@testing-library/react';
22import {
33 usePathname as useNextPathname ,
44 useParams ,
5- redirect as nextRedirect
5+ redirect as nextRedirect ,
6+ RedirectType
67} from 'next/navigation' ;
78import React from 'react' ;
89import { renderToString } from 'react-dom/server' ;
@@ -12,11 +13,15 @@ import createSharedPathnamesNavigationServer from '../../src/navigation/react-se
1213import BaseLink from '../../src/navigation/shared/BaseLink' ;
1314import { getRequestLocale } from '../../src/server/react-server/RequestLocale' ;
1415
15- vi . mock ( 'next/navigation' , ( ) => ( {
16- useParams : vi . fn ( ( ) => ( { locale : 'en' } ) ) ,
17- usePathname : vi . fn ( ( ) => '/' ) ,
18- redirect : vi . fn ( )
19- } ) ) ;
16+ vi . mock ( 'next/navigation' , async ( ) => {
17+ const actual = await vi . importActual ( 'next/navigation' ) ;
18+ return {
19+ ...actual ,
20+ useParams : vi . fn ( ( ) => ( { locale : 'en' } ) ) ,
21+ usePathname : vi . fn ( ( ) => '/' ) ,
22+ redirect : vi . fn ( )
23+ } ;
24+ } ) ;
2025vi . mock ( 'next-intl/config' , ( ) => ( {
2126 default : async ( ) =>
2227 ( ( await vi . importActual ( '../../src/server' ) ) as any ) . getRequestConfig ( {
@@ -167,6 +172,15 @@ describe.each([
167172 '/en?foo=bar&bar=1&bar=2'
168173 ) ;
169174 } ) ;
175+
176+ it ( 'can supply a type' , ( ) => {
177+ function Test ( ) {
178+ redirect ( '/' , RedirectType . push ) ;
179+ return null ;
180+ }
181+ render ( < Test /> ) ;
182+ expect ( nextRedirect ) . toHaveBeenLastCalledWith ( '/en' , 'push' ) ;
183+ } ) ;
170184 } ) ;
171185 } ) ;
172186
0 commit comments