@@ -381,6 +381,42 @@ mod test {
381381 use super :: * ;
382382 use time:: macros:: datetime;
383383
384+ fn create_test_importer (
385+ heartbeat : Option < i128 > ,
386+ last_run : Option < OffsetDateTime > ,
387+ disabled : bool ,
388+ ) -> Importer {
389+ let now = OffsetDateTime :: now_utc ( ) ;
390+ Importer {
391+ name : "test" . into ( ) ,
392+ heartbeat,
393+ data : ImporterData {
394+ configuration : ImporterConfiguration :: Sbom ( SbomImporter {
395+ common : CommonImporter {
396+ disabled,
397+ period : Duration :: from_secs ( 30 ) ,
398+ description : None ,
399+ labels : Default :: default ( ) ,
400+ } ,
401+ source : "test" . into ( ) ,
402+ keys : vec ! [ ] ,
403+ only_patterns : vec ! [ ] ,
404+ v3_signatures : false ,
405+ size_limit : None ,
406+ fetch_retries : None ,
407+ ignore_missing : false ,
408+ } ) ,
409+ state : State :: Waiting ,
410+ last_change : now,
411+ last_success : None ,
412+ last_run,
413+ last_error : None ,
414+ progress : Default :: default ( ) ,
415+ continuation : serde_json:: Value :: Null ,
416+ } ,
417+ }
418+ }
419+
384420 #[ test]
385421 fn progress ( ) {
386422 let start = datetime ! ( 2024 -01 -01 00 : 00 : 00 UTC ) ;
@@ -427,4 +463,37 @@ mod test {
427463 Progress :: default ( )
428464 ) ;
429465 }
466+
467+ #[ test]
468+ fn importer_is_due ( ) {
469+ let now = OffsetDateTime :: now_utc ( ) ;
470+ let importer = create_test_importer ( None , None , false ) ;
471+ assert ! ( importer. is_due( ) ) ;
472+
473+ let importer = create_test_importer ( None , Some ( now - Duration :: from_secs ( 20 ) ) , false ) ;
474+ assert ! ( !importer. is_due( ) ) ;
475+ }
476+
477+ #[ test]
478+ fn importer_is_running ( ) {
479+ let now = OffsetDateTime :: now_utc ( ) ;
480+ let importer = create_test_importer ( Some ( now. unix_timestamp_nanos ( ) ) , None , false ) ;
481+ assert ! ( importer. is_running( ) ) ;
482+
483+ let importer = create_test_importer (
484+ Some ( ( now - Duration :: from_secs ( 30 ) ) . unix_timestamp_nanos ( ) ) ,
485+ None ,
486+ false ,
487+ ) ;
488+ assert ! ( !importer. is_running( ) ) ;
489+ }
490+
491+ #[ test]
492+ fn importer_is_enabled ( ) {
493+ let importer = create_test_importer ( None , None , false ) ;
494+ assert ! ( importer. is_enabled( ) ) ;
495+
496+ let importer = create_test_importer ( None , None , true ) ;
497+ assert ! ( !importer. is_enabled( ) ) ;
498+ }
430499}
0 commit comments