1
1
use crate :: budgetbutler:: view:: icons:: { Icon , COGS , DASHBOARD , LINE_CHART , LIST , PLUS , RELOAD } ;
2
+ use crate :: budgetbutler:: view:: request_handler:: ActivePage ;
2
3
use crate :: budgetbutler:: view:: routes:: {
3
4
CORE_CONFIGURATION , CORE_IMPORT , CORE_RELOAD_DATABASE , EINZELBUCHUNGEN_AUSGABE_ADD ,
4
5
EINZELBUCHUNGEN_DAUERAUFTRAG_ADD , EINZELBUCHUNGEN_DAUERAUFTRAG_UEBERSICHT ,
@@ -211,22 +212,22 @@ pub struct MenuEntry {
211
212
pub icon : Icon ,
212
213
}
213
214
214
- pub fn resolve_active_group_from_url ( url : & str ) -> String {
215
+ pub fn resolve_active_group_from_url ( active_page : & ActivePage ) -> String {
215
216
let mut found: Option < String > = None ;
216
217
for entry in sparen_menu ( ) . sub_menu {
217
- if entry. url == url {
218
+ if entry. url == active_page . active_page_url {
218
219
found = Some ( SPAREN . to_string ( ) ) ;
219
220
}
220
221
}
221
222
222
223
for entry in gemeinsame_buchungen_menu ( ) . sub_menu {
223
- if entry. url == url {
224
+ if entry. url == active_page . active_page_url {
224
225
found = Some ( GEMEINSAME_FINANZEN . to_string ( ) ) ;
225
226
}
226
227
}
227
228
228
229
for entry in einstellungen_menu ( ) . sub_menu {
229
- if entry. url == url {
230
+ if entry. url == active_page . active_page_url {
230
231
found = Some ( EINSTELLUNGEN . to_string ( ) ) ;
231
232
}
232
233
}
@@ -239,23 +240,45 @@ mod tests {
239
240
use super :: * ;
240
241
241
242
#[ test]
242
- fn test_resolve_active_group_from_url ( ) {
243
+ fn test_resolve_active_group_from_url_should_resolve_einzelbuchungen ( ) {
243
244
assert_eq ! (
244
- resolve_active_group_from_url( EINZELBUCHUNGEN_JAHRESUEBERSICHT ) ,
245
+ resolve_active_group_from_url( & ActivePage :: construct_from_url(
246
+ EINZELBUCHUNGEN_JAHRESUEBERSICHT
247
+ ) ) ,
245
248
PERSOENLICHE_FINANZEN
246
249
) ;
247
- assert_eq ! ( resolve_active_group_from_url( SPAREN_UEBERSICHT ) , SPAREN ) ;
250
+ }
251
+
252
+ #[ test]
253
+ fn test_resolve_active_group_from_url_should_resolve_spagen ( ) {
248
254
assert_eq ! (
249
- resolve_active_group_from_url( GEMEINSAME_BUCHUNGEN_UEBERSICHT ) ,
255
+ resolve_active_group_from_url( & ActivePage :: construct_from_url( SPAREN_UEBERSICHT ) ) ,
256
+ SPAREN
257
+ ) ;
258
+ }
259
+
260
+ #[ test]
261
+ fn test_resolve_active_group_from_url_should_resolve_gemeinsame_finanzen ( ) {
262
+ assert_eq ! (
263
+ resolve_active_group_from_url( & ActivePage :: construct_from_url(
264
+ GEMEINSAME_BUCHUNGEN_UEBERSICHT
265
+ ) ) ,
250
266
GEMEINSAME_FINANZEN
251
267
) ;
268
+ }
269
+
270
+ #[ test]
271
+ fn test_resolve_active_group_from_url_should_resolve_einstellungen ( ) {
252
272
assert_eq ! (
253
- resolve_active_group_from_url( CORE_CONFIGURATION ) ,
273
+ resolve_active_group_from_url( & ActivePage :: construct_from_url ( CORE_CONFIGURATION ) ) ,
254
274
EINSTELLUNGEN
255
275
) ;
276
+ }
256
277
278
+ #[ test]
279
+ fn test_resolve_active_group_from_url_default_to_persoenlich_when_unknown ( ) {
257
280
assert_eq ! (
258
- resolve_active_group_from_url( "asdfg" ) ,
281
+ resolve_active_group_from_url( & ActivePage :: construct_from_url ( "asdfg" ) ) ,
259
282
PERSOENLICHE_FINANZEN
260
283
) ;
261
284
}
0 commit comments