@@ -12,11 +12,17 @@ vi.mock('../hooks/useFeedConversion', () => ({
12
12
useFeedConversion : vi . fn ( ) ,
13
13
} ) ) ;
14
14
15
+ vi . mock ( '../hooks/useStrategies' , ( ) => ( {
16
+ useStrategies : vi . fn ( ) ,
17
+ } ) ) ;
18
+
15
19
import { useAuth } from '../hooks/useAuth' ;
16
20
import { useFeedConversion } from '../hooks/useFeedConversion' ;
21
+ import { useStrategies } from '../hooks/useStrategies' ;
17
22
18
23
const mockUseAuth = useAuth as any ;
19
24
const mockUseFeedConversion = useFeedConversion as any ;
25
+ const mockUseStrategies = useStrategies as any ;
20
26
21
27
describe ( 'App' , ( ) => {
22
28
const mockLogin = vi . fn ( ) ;
@@ -41,16 +47,20 @@ describe('App', () => {
41
47
convertFeed : mockConvertFeed ,
42
48
clearResult : mockClearResult ,
43
49
} ) ;
50
+
51
+ mockUseStrategies . mockReturnValue ( {
52
+ strategies : [ ] ,
53
+ isLoading : false ,
54
+ error : null ,
55
+ } ) ;
44
56
} ) ;
45
57
46
58
it ( 'should render demo section when not authenticated' , ( ) => {
47
59
render ( < App /> ) ;
48
60
49
- expect ( screen . getByText ( '🚀 Try It Out ' ) ) . toBeInTheDocument ( ) ;
61
+ expect ( screen . getByText ( '🚀 Try it out ' ) ) . toBeInTheDocument ( ) ;
50
62
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.' )
54
64
) . toBeInTheDocument ( ) ;
55
65
expect ( screen . getByText ( 'Sign in here' ) ) . toBeInTheDocument ( ) ;
56
66
} ) ;
@@ -59,25 +69,42 @@ describe('App', () => {
59
69
mockUseAuth . mockReturnValue ( {
60
70
isAuthenticated : true ,
61
71
username : 'testuser' ,
72
+ token : 'test-token' ,
62
73
login : mockLogin ,
63
74
logout : mockLogout ,
64
75
} ) ;
65
76
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
+
66
86
render ( < App /> ) ;
67
87
68
88
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 ( ) ;
71
91
} ) ;
72
92
73
93
it ( 'should call logout when logout button is clicked' , ( ) => {
74
94
mockUseAuth . mockReturnValue ( {
75
95
isAuthenticated : true ,
76
96
username : 'testuser' ,
97
+ token : 'test-token' ,
77
98
login : mockLogin ,
78
99
logout : mockLogout ,
79
100
} ) ;
80
101
102
+ mockUseStrategies . mockReturnValue ( {
103
+ strategies : [ { id : 'ssrf_filter' , name : 'ssrf_filter' , display_name : 'SSRF Filter' } ] ,
104
+ isLoading : false ,
105
+ error : null ,
106
+ } ) ;
107
+
81
108
render ( < App /> ) ;
82
109
83
110
const logoutButton = screen . getByText ( 'Logout' ) ;
@@ -91,10 +118,17 @@ describe('App', () => {
91
118
mockUseAuth . mockReturnValue ( {
92
119
isAuthenticated : true ,
93
120
username : 'tester' ,
121
+ token : 'test-token' ,
94
122
login : mockLogin ,
95
123
logout : mockLogout ,
96
124
} ) ;
97
125
126
+ mockUseStrategies . mockReturnValue ( {
127
+ strategies : [ { id : 'ssrf_filter' , name : 'ssrf_filter' , display_name : 'SSRF Filter' } ] ,
128
+ isLoading : false ,
129
+ error : null ,
130
+ } ) ;
131
+
98
132
mockUseFeedConversion . mockReturnValue ( {
99
133
isConverting : false ,
100
134
result : null ,
@@ -105,7 +139,7 @@ describe('App', () => {
105
139
106
140
render ( < App /> ) ;
107
141
108
- expect ( screen . getByText ( '❌ Error ' ) ) . toBeInTheDocument ( ) ;
142
+ expect ( screen . getByText ( 'Conversion error ' ) ) . toBeInTheDocument ( ) ;
109
143
expect ( screen . getByText ( 'Access Denied' ) ) . toBeInTheDocument ( ) ;
110
144
} ) ;
111
145
} ) ;
0 commit comments