@@ -13,6 +13,7 @@ import TaxonomyDetailPage from './TaxonomyDetailPage';
13
13
let store ;
14
14
const mockNavigate = jest . fn ( ) ;
15
15
const mockMutate = jest . fn ( ) ;
16
+ const mockTaggingFeaturesEnabled = jest . fn ( ) ;
16
17
let axiosMock ;
17
18
18
19
jest . mock ( 'react-router-dom' , ( ) => ( {
@@ -21,11 +22,16 @@ jest.mock('react-router-dom', () => ({
21
22
taxonomyId : '1' ,
22
23
} ) ,
23
24
useNavigate : ( ) => mockNavigate ,
25
+ Navigate : jest . fn ( ( { to } ) => `[Navigate: Redirected to ${ to } ]` ) ,
24
26
} ) ) ;
25
27
jest . mock ( '../data/apiHooks' , ( ) => ( {
26
28
...jest . requireActual ( '../data/apiHooks' ) ,
27
29
useDeleteTaxonomy : ( ) => mockMutate ,
28
30
} ) ) ;
31
+ jest . mock ( '../../generic/data/apiHooks' , ( ) => ( {
32
+ ...jest . requireActual ( '../../generic/data/apiHooks' ) ,
33
+ useTaggingFeaturesEnabled : ( ) => mockTaggingFeaturesEnabled ( ) ,
34
+ } ) ) ;
29
35
30
36
jest . mock ( './TaxonomyDetailSideCard' , ( ) => jest . fn ( ( ) => < > Mock TaxonomyDetailSideCard</ > ) ) ;
31
37
jest . mock ( '../tag-list/TagListTable' , ( ) => jest . fn ( ( ) => < > Mock TagListTable</ > ) ) ;
@@ -54,6 +60,7 @@ describe('<TaxonomyDetailPage />', () => {
54
60
} ) ;
55
61
store = initializeStore ( ) ;
56
62
axiosMock = new MockAdapter ( getAuthenticatedHttpClient ( ) ) ;
63
+ mockTaggingFeaturesEnabled . mockReturnValue ( true ) ;
57
64
} ) ;
58
65
59
66
afterEach ( ( ) => {
@@ -62,6 +69,12 @@ describe('<TaxonomyDetailPage />', () => {
62
69
queryClient . clear ( ) ;
63
70
} ) ;
64
71
72
+ it ( 'redirects to Studio home if the tagging feature is disabled' , ( ) => {
73
+ mockTaggingFeaturesEnabled . mockReturnValue ( false ) ;
74
+ const doc = render ( < RootWrapper /> ) ;
75
+ expect ( doc . asFragment ( ) . textContent ) . toEqual ( '[Navigate: Redirected to /home]' ) ;
76
+ } ) ;
77
+
65
78
it ( 'shows the spinner before the query is complete' , ( ) => {
66
79
// Use unresolved promise to keep the Loading visible
67
80
axiosMock . onGet ( apiUrls . taxonomy ( 1 ) ) . reply ( ( ) => new Promise ( ) ) ;
0 commit comments