1- import { render , screen } from '@testing-library/react' ;
1+ import { act , render , screen } from '@testing-library/react' ;
22import { RouterProvider , createMemoryRouter } from 'react-router-dom' ;
33import { PROFILE_BFIDS } from '@common/constants/bibframe.constants' ;
44import { EditPreview } from '@components/EditPreview' ;
@@ -15,11 +15,16 @@ jest.mock('react-router-dom', () => ({
1515} ) ) ;
1616
1717describe ( 'EditPreview' , ( ) => {
18+ const resetPreviewContent = jest . fn ( ) ;
19+
1820 beforeEach ( ( ) => {
1921 setInitialGlobalState ( [
2022 {
2123 store : useInputsStore ,
22- state : { record : { } } ,
24+ state : {
25+ record : { } ,
26+ resetPreviewContent,
27+ } ,
2328 } ,
2429 {
2530 store : useUIStore ,
@@ -41,4 +46,28 @@ describe('EditPreview', () => {
4146 test ( 'contains instances list when create work page is opened' , ( ) => {
4247 expect ( getByTestId ( 'instances-list' ) ) . toBeInTheDocument ( ) ;
4348 } ) ;
49+
50+ test ( 'calls resetPreviewContent when resourceId changes' , ( ) => {
51+ const router = createMemoryRouter (
52+ [
53+ {
54+ path : '/resources/:resourceId/edit' ,
55+ element : < EditPreview /> ,
56+ } ,
57+ ] ,
58+ {
59+ initialEntries : [ '/resources/123/edit' ] ,
60+ } ,
61+ ) ;
62+
63+ const { rerender } = render ( < RouterProvider router = { router } /> ) ;
64+
65+ act ( ( ) => {
66+ router . navigate ( '/resources/456/edit' ) ;
67+ } ) ;
68+
69+ rerender ( < RouterProvider router = { router } /> ) ;
70+
71+ expect ( resetPreviewContent ) . toHaveBeenCalled ( ) ;
72+ } ) ;
4473} ) ;
0 commit comments