@@ -15,6 +15,7 @@ vi.mock("../../../api/goffApi.ts", () => ({
15
15
updateFeatureFlagStatusById : vi . fn ( ) ,
16
16
deleteFeatureFlagById : vi . fn ( ) ,
17
17
} ) ) ;
18
+ const mockedUsedNavigate = vi . fn ( ) ;
18
19
19
20
describe ( "flag row" , ( ) => {
20
21
const handleDelete = vi . fn ( ) ;
@@ -53,6 +54,40 @@ describe("flag row", () => {
53
54
version : "0.0.1" ,
54
55
} ;
55
56
} ) ;
57
+
58
+ describe ( "click flag details" , ( ) => {
59
+ it ( "should redirect to the flag details page by clicking on the row" , async ( ) => {
60
+ vi . mock ( "react-router-dom" , async ( ) => {
61
+ const actual = await vi . importActual ( "react-router-dom" ) ;
62
+ return {
63
+ ...actual ,
64
+ useNavigate : ( ) => mockedUsedNavigate ,
65
+ } ;
66
+ } ) ;
67
+
68
+ render (
69
+ < MemoryRouter >
70
+ < Table hoverable >
71
+ < TableBody className = "divide-y" >
72
+ < FlagRow
73
+ handleDelete = { handleDelete }
74
+ handleDisable = { handleDisable }
75
+ flag = { defaultFlag }
76
+ />
77
+ </ TableBody >
78
+ </ Table >
79
+ </ MemoryRouter > ,
80
+ ) ;
81
+ expect ( screen . getByText ( defaultFlag . name ?? "" ) ) . toBeVisible ( ) ;
82
+ await userEvent . click ( screen . getByText ( defaultFlag . name ?? "" ) , {
83
+ delay : 100 ,
84
+ } ) ;
85
+ expect ( mockedUsedNavigate ) . toHaveBeenCalledWith (
86
+ `/flags/${ defaultFlag . id } ` ,
87
+ ) ;
88
+ } ) ;
89
+ } ) ;
90
+
56
91
describe ( "labels" , ( ) => {
57
92
it ( "should display a labels (version, variations, type) of the flag" , ( ) => {
58
93
render (
0 commit comments