@@ -453,3 +453,59 @@ impl Frontend for Wish {
453
453
self . predicates_widget . text ( & texts. join ( "\n " ) ) ;
454
454
}
455
455
}
456
+
457
+ #[ cfg( test) ]
458
+ mod tests {
459
+ use crate :: { Config , Wish } ;
460
+ use afrim:: frontend:: Frontend ;
461
+ use std:: path:: Path ;
462
+ use std:: thread;
463
+ use std:: time:: Duration ;
464
+
465
+ #[ test]
466
+ fn test_api ( ) {
467
+ let config = Config :: from_file ( Path :: new ( "data/full_sample.toml" ) ) . unwrap ( ) ;
468
+ let mut afrim_wish = Wish :: init ( config) ;
469
+ afrim_wish. build ( ) ;
470
+
471
+ // Test without data.
472
+ afrim_wish. clear_predicates ( ) ;
473
+ afrim_wish. next_predicate ( ) ;
474
+ afrim_wish. previous_predicate ( ) ;
475
+ assert ! ( afrim_wish. get_selected_predicate( ) . is_none( ) ) ;
476
+ afrim_wish. display ( ) ;
477
+
478
+ // Test the adding of predicates.
479
+ afrim_wish. set_page_size ( 3 ) ;
480
+ afrim_wish. set_input ( "Test started!" ) ;
481
+ afrim_wish. add_predicate ( "test" , "123" , "ok" ) ;
482
+ afrim_wish. add_predicate ( "test1" , "23" , "ok" ) ;
483
+ afrim_wish. add_predicate ( "test12" , "1" , "ok" ) ;
484
+ afrim_wish. add_predicate ( "test123" , "" , "ok" ) ;
485
+ afrim_wish. add_predicate ( "test1234" , "" , "" ) ;
486
+ afrim_wish. display ( ) ;
487
+
488
+ // Test the geometry.
489
+ ( 0 ..100 ) . for_each ( |i| {
490
+ if i % 10 != 0 {
491
+ return ;
492
+ } ;
493
+ let i = i as f64 ;
494
+ afrim_wish. update_position ( ( i, i) ) ;
495
+ thread:: sleep ( Duration :: from_millis ( 100 ) ) ;
496
+ } ) ;
497
+
498
+ // Test the navigation.
499
+ afrim_wish. previous_predicate ( ) ;
500
+ assert_eq ! (
501
+ afrim_wish. get_selected_predicate( ) ,
502
+ Some ( & ( "test1234" . to_owned( ) , "" . to_owned( ) , "" . to_owned( ) ) )
503
+ ) ;
504
+ afrim_wish. next_predicate ( ) ;
505
+ assert_eq ! (
506
+ afrim_wish. get_selected_predicate( ) ,
507
+ Some ( & ( "test" . to_owned( ) , "123" . to_owned( ) , "ok" . to_owned( ) ) )
508
+ ) ;
509
+ afrim_wish. display ( ) ;
510
+ }
511
+ }
0 commit comments