@@ -12,11 +12,17 @@ vi.mock('../hooks/useFeedConversion', () => ({
1212 useFeedConversion : vi . fn ( ) ,
1313} ) ) ;
1414
15+ vi . mock ( '../hooks/useStrategies' , ( ) => ( {
16+ useStrategies : vi . fn ( ) ,
17+ } ) ) ;
18+
1519import { useAuth } from '../hooks/useAuth' ;
1620import { useFeedConversion } from '../hooks/useFeedConversion' ;
21+ import { useStrategies } from '../hooks/useStrategies' ;
1722
1823const mockUseAuth = useAuth as any ;
1924const mockUseFeedConversion = useFeedConversion as any ;
25+ const mockUseStrategies = useStrategies as any ;
2026
2127describe ( 'App' , ( ) => {
2228 const mockLogin = vi . fn ( ) ;
@@ -41,16 +47,20 @@ describe('App', () => {
4147 convertFeed : mockConvertFeed ,
4248 clearResult : mockClearResult ,
4349 } ) ;
50+
51+ mockUseStrategies . mockReturnValue ( {
52+ strategies : [ ] ,
53+ isLoading : false ,
54+ error : null ,
55+ } ) ;
4456 } ) ;
4557
4658 it ( 'should render demo section when not authenticated' , ( ) => {
4759 render ( < App /> ) ;
4860
49- expect ( screen . getByText ( '🚀 Try It Out ' ) ) . toBeInTheDocument ( ) ;
61+ expect ( screen . getByText ( '🚀 Try it out ' ) ) . toBeInTheDocument ( ) ;
5062 expect (
51- screen . getByText (
52- 'Click any button below to instantly convert these websites to RSS feeds - no signup required!'
53- )
63+ screen . getByText ( 'Launch a demo conversion to see the results instantly. No sign-in required.' )
5464 ) . toBeInTheDocument ( ) ;
5565 expect ( screen . getByText ( 'Sign in here' ) ) . toBeInTheDocument ( ) ;
5666 } ) ;
@@ -59,25 +69,42 @@ describe('App', () => {
5969 mockUseAuth . mockReturnValue ( {
6070 isAuthenticated : true ,
6171 username : 'testuser' ,
72+ token : 'test-token' ,
6273 login : mockLogin ,
6374 logout : mockLogout ,
6475 } ) ;
6576
77+ mockUseStrategies . mockReturnValue ( {
78+ strategies : [
79+ { id : 'ssrf_filter' , name : 'ssrf_filter' , display_name : 'SSRF Filter' } ,
80+ { id : 'browserless' , name : 'browserless' , display_name : 'Browserless' } ,
81+ ] ,
82+ isLoading : false ,
83+ error : null ,
84+ } ) ;
85+
6686 render ( < App /> ) ;
6787
6888 expect ( screen . getByText ( 'Welcome, testuser!' ) ) . toBeInTheDocument ( ) ;
69- expect ( screen . getByText ( '🌐 Convert Website ' ) ) . toBeInTheDocument ( ) ;
70- expect ( screen . getByText ( 'Enter the URL of the website you want to convert to RSS' ) ) . toBeInTheDocument ( ) ;
89+ expect ( screen . getByText ( '🌐 Convert website ' ) ) . toBeInTheDocument ( ) ;
90+ expect ( screen . getByText ( 'Enter a URL to generate an RSS feed. ' ) ) . toBeInTheDocument ( ) ;
7191 } ) ;
7292
7393 it ( 'should call logout when logout button is clicked' , ( ) => {
7494 mockUseAuth . mockReturnValue ( {
7595 isAuthenticated : true ,
7696 username : 'testuser' ,
97+ token : 'test-token' ,
7798 login : mockLogin ,
7899 logout : mockLogout ,
79100 } ) ;
80101
102+ mockUseStrategies . mockReturnValue ( {
103+ strategies : [ { id : 'ssrf_filter' , name : 'ssrf_filter' , display_name : 'SSRF Filter' } ] ,
104+ isLoading : false ,
105+ error : null ,
106+ } ) ;
107+
81108 render ( < App /> ) ;
82109
83110 const logoutButton = screen . getByText ( 'Logout' ) ;
@@ -91,10 +118,17 @@ describe('App', () => {
91118 mockUseAuth . mockReturnValue ( {
92119 isAuthenticated : true ,
93120 username : 'tester' ,
121+ token : 'test-token' ,
94122 login : mockLogin ,
95123 logout : mockLogout ,
96124 } ) ;
97125
126+ mockUseStrategies . mockReturnValue ( {
127+ strategies : [ { id : 'ssrf_filter' , name : 'ssrf_filter' , display_name : 'SSRF Filter' } ] ,
128+ isLoading : false ,
129+ error : null ,
130+ } ) ;
131+
98132 mockUseFeedConversion . mockReturnValue ( {
99133 isConverting : false ,
100134 result : null ,
@@ -105,7 +139,7 @@ describe('App', () => {
105139
106140 render ( < App /> ) ;
107141
108- expect ( screen . getByText ( '❌ Error ' ) ) . toBeInTheDocument ( ) ;
142+ expect ( screen . getByText ( 'Conversion error ' ) ) . toBeInTheDocument ( ) ;
109143 expect ( screen . getByText ( 'Access Denied' ) ) . toBeInTheDocument ( ) ;
110144 } ) ;
111145} ) ;
0 commit comments