Skip to content

Commit 93df8ff

Browse files
ctronhelio-frota
authored andcommitted
test(importer): increase unit test coverage and refactor test helpers
Add unit tests for Importer methods: is_due, is_running, is_enabled. Assisted-by: Cursor
1 parent 12db42d commit 93df8ff

1 file changed

Lines changed: 69 additions & 0 deletions

File tree

  • modules/importer/src/model

modules/importer/src/model/mod.rs

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)