pub(crate) use super::*;
#[test]
fn test_p1_test_fast_exists() {
let result = p1_test_fast_exists();
assert!(result.passed, "P1 failed: {}", result.details);
assert_eq!(result.id, "P1");
}
#[test]
fn test_p2_test_fast_under_2s() {
let result = p2_test_fast_under_2s();
assert!(result.passed, "P2 failed: {}", result.details);
}
#[test]
fn test_p3_coverage() {
let result = p3_test_fast_coverage();
assert!(result.passed, "P3 failed: {}", result.details);
}
#[test]
fn test_p4_no_network() {
let result = p4_no_network_calls();
assert!(result.passed, "P4 failed: {}", result.details);
}
#[test]
fn test_p5_no_disk_writes() {
let result = p5_no_disk_writes();
assert!(result.passed, "P5 failed: {}", result.details);
}
#[test]
fn test_p6_compile_time() {
let result = p6_compile_under_5s();
assert!(result.passed, "P6 failed: {}", result.details);
}
#[test]
fn test_p7_test_heavy_exists() {
let result = p7_test_heavy_exists();
assert!(result.passed, "P7 failed: {}", result.details);
}
#[test]
fn test_p8_nextest() {
let result = p8_nextest_supported();
assert!(result.passed, "P8 failed: {}", result.details);
}
#[test]
fn test_p9_ci_fast_first() {
let result = p9_ci_fast_first();
assert!(result.passed, "P9 failed: {}", result.details);
}
#[test]
fn test_p10_no_sleep() {
let result = p10_no_sleep_in_fast();
assert!(result.passed, "P10 failed: {}", result.details);
}
#[test]
fn test_run_all_velocity_tests() {
let results = run_all_velocity_tests();
assert_eq!(results.len(), 10);
for result in &results {
assert!(result.passed, "{} failed: {}", result.id, result.details);
}
}
#[test]
fn test_velocity_score() {
let (passed, total) = velocity_score();
assert_eq!(total, 10);
assert_eq!(passed, 10, "Expected all 10 velocity tests to pass");
}
#[test]
fn test_velocity_result_with_duration() {
let result =
VelocityResult::pass("P1", "test", "details").with_duration(Duration::from_secs(1));
assert!(result.duration.is_some());
assert_eq!(result.duration.unwrap(), Duration::from_secs(1));
}
#[test]
fn test_velocity_result_pass_fields() {
let result = VelocityResult::pass("ID1", "Test Name", "Details here");
assert_eq!(result.id, "ID1");
assert_eq!(result.name, "Test Name");
assert!(result.passed);
assert_eq!(result.details, "Details here");
assert!(result.duration.is_none());
}
#[test]
fn test_velocity_result_fail_fields() {
let result = VelocityResult::fail("ID2", "Fail Test", "Failure reason");
assert_eq!(result.id, "ID2");
assert_eq!(result.name, "Fail Test");
assert!(!result.passed);
assert_eq!(result.details, "Failure reason");
assert!(result.duration.is_none());
}
#[test]
fn test_velocity_result_debug() {
let result = VelocityResult::pass("P1", "test", "details");
let debug_str = format!("{:?}", result);
assert!(debug_str.contains("VelocityResult"));
assert!(debug_str.contains("P1"));
}
#[test]
fn test_velocity_result_clone() {
let original =
VelocityResult::pass("P1", "test", "details").with_duration(Duration::from_millis(500));
let cloned = original.clone();
assert_eq!(cloned.id, original.id);
assert_eq!(cloned.name, original.name);
assert_eq!(cloned.passed, original.passed);
assert_eq!(cloned.details, original.details);
assert_eq!(cloned.duration, original.duration);
}
#[test]
fn test_p3_coverage_thresholds() {
let result = p3_test_fast_coverage();
assert!(result.passed);
assert!(result.details.contains("96.94"));
}
#[test]
fn test_p4_static_check() {
let result = p4_no_network_calls();
assert!(result.passed);
assert!(result.details.contains("no network calls"));
}
#[test]
fn test_p5_static_check() {
let result = p5_no_disk_writes();
assert!(result.passed);
assert!(result.details.contains("tempfile"));
}
#[test]
fn test_p6_static_check() {
let result = p6_compile_under_5s();
assert!(result.passed);
assert!(result.details.contains("Incremental"));
}
#[test]
fn test_p10_static_check() {
let result = p10_no_sleep_in_fast();
assert!(result.passed);
assert!(result.details.contains("ignore"));
}
#[test]
fn test_velocity_score_values() {
let (passed, total) = velocity_score();
assert!(passed <= total);
assert!(total > 0);
}
#[test]
fn test_results_have_unique_ids() {
let results = run_all_velocity_tests();
let mut ids: Vec<&str> = results.iter().map(|r| r.id.as_str()).collect();
ids.sort();
let original_len = ids.len();
ids.dedup();
assert_eq!(ids.len(), original_len, "All test IDs should be unique");
}
#[test]
fn test_results_have_names() {
let results = run_all_velocity_tests();
for result in results {
assert!(
!result.name.is_empty(),
"Test {} should have a name",
result.id
);
assert!(
!result.details.is_empty(),
"Test {} should have details",
result.id
);
}
}
#[test]
fn test_duration_zero() {
let result =
VelocityResult::pass("P1", "test", "details").with_duration(Duration::from_secs(0));
assert!(result.duration.is_some());
assert_eq!(result.duration.expect("Expected duration"), Duration::ZERO);
}
#[test]
fn test_duration_large() {
let result =
VelocityResult::pass("P1", "test", "details").with_duration(Duration::from_secs(3600));
assert!(result.duration.is_some());
assert_eq!(
result.duration.expect("Expected duration"),
Duration::from_secs(3600)
);
}
#[test]
fn test_velocity_result_pass_creates_passing() {
let result = VelocityResult::pass("test-id", "test name", "test details");
assert!(result.passed);
assert_eq!(result.id, "test-id");
assert_eq!(result.name, "test name");
assert_eq!(result.details, "test details");
}
#[test]
fn test_velocity_result_fail_creates_failing() {
let result = VelocityResult::fail("fail-id", "fail name", "fail details");
assert!(!result.passed);
assert_eq!(result.id, "fail-id");
assert_eq!(result.name, "fail name");
assert_eq!(result.details, "fail details");
}
#[test]
fn test_velocity_result_with_duration_chains() {
let result =
VelocityResult::fail("id", "name", "details").with_duration(Duration::from_millis(100));
assert!(!result.passed);
assert!(result.duration.is_some());
}
#[test]
fn test_p1_returns_correct_id() {
let result = p1_test_fast_exists();
assert_eq!(result.id, "P1");
assert_eq!(result.name, "test-fast exists");
}
#[test]
fn test_p2_returns_correct_id() {
let result = p2_test_fast_under_2s();
assert_eq!(result.id, "P2");
assert_eq!(result.name, "test-fast < 2s");
}
#[test]
fn test_p7_returns_correct_id() {
let result = p7_test_heavy_exists();
assert_eq!(result.id, "P7");
assert_eq!(result.name, "test-heavy exists");
}
#[test]
fn test_p8_returns_correct_id() {
let result = p8_nextest_supported();
assert_eq!(result.id, "P8");
assert_eq!(result.name, "nextest supported");
}
#[test]
fn test_p9_returns_correct_id() {
let result = p9_ci_fast_first();
assert_eq!(result.id, "P9");
assert_eq!(result.name, "CI fast first");
}
#[test]
fn test_all_results_have_consistent_structure() {
let results = run_all_velocity_tests();
for (i, result) in results.iter().enumerate() {
let expected_id = format!("P{}", i + 1);
assert_eq!(result.id, expected_id, "Result {} has wrong ID", i);
assert!(!result.name.is_empty());
assert!(!result.details.is_empty());
}
}
#[test]
fn test_velocity_score_returns_tuple() {
let (passed, total) = velocity_score();
assert_eq!(total, 10);
assert!(passed <= total);
}
#[test]
fn test_velocity_result_duration_none_by_default() {
let pass_result = VelocityResult::pass("id", "name", "details");
assert!(pass_result.duration.is_none());
let fail_result = VelocityResult::fail("id", "name", "details");
assert!(fail_result.duration.is_none());
}
#[test]
fn test_velocity_result_multiple_durations() {
let result =
VelocityResult::pass("id", "name", "details").with_duration(Duration::from_secs(1));
assert_eq!(result.duration, Some(Duration::from_secs(1)));
let result2 = result.with_duration(Duration::from_secs(2));
assert_eq!(result2.duration, Some(Duration::from_secs(2)));
}
#[test]
fn test_p3_details_contain_percentage() {
let result = p3_test_fast_coverage();
assert!(result.details.contains('%'));
}
#[test]
fn test_p4_details_describe_policy() {
let result = p4_no_network_calls();
assert!(
result.details.contains("network") || result.details.contains("HF"),
"Details should describe network policy"
);
}
#[test]
fn test_p5_details_describe_policy() {
let result = p5_no_disk_writes();
assert!(
result.details.contains("tmp") || result.details.contains("tempfile"),
"Details should mention temp directory policy"
);
}
#[test]
fn test_p6_details_describe_compilation() {
let result = p6_compile_under_5s();
assert!(
result.details.contains("ncremental") || result.details.contains("compile"),
"Details should describe compilation strategy"
);
}
#[test]
fn test_p10_details_describe_ignore() {
let result = p10_no_sleep_in_fast();
assert!(
result.details.contains("ignore") || result.details.contains("#[ignore]"),
"Details should mention ignore attribute"
);
}
#[test]
fn test_velocity_result_clone_independence() {
let original = VelocityResult::pass("id", "name", "details");
let cloned = original.clone();
assert_eq!(original.id, cloned.id);
assert_eq!(original.name, cloned.name);
assert_eq!(original.passed, cloned.passed);
assert_eq!(original.details, cloned.details);
}
#[test]
fn test_velocity_result_debug_output() {
let result = VelocityResult::fail("P99", "test", "details");
let debug = format!("{:?}", result);
assert!(debug.contains("P99"));
assert!(debug.contains("passed: false") || debug.contains("passed:false"));
}
#[test]
fn test_run_all_returns_10_results() {
let results = run_all_velocity_tests();
assert_eq!(results.len(), 10);
}
#[test]
fn test_all_p_tests_return_results() {
let _ = p1_test_fast_exists();
let _ = p2_test_fast_under_2s();
let _ = p3_test_fast_coverage();
let _ = p4_no_network_calls();
let _ = p5_no_disk_writes();
let _ = p6_compile_under_5s();
let _ = p7_test_heavy_exists();
let _ = p8_nextest_supported();
let _ = p9_ci_fast_first();
let _ = p10_no_sleep_in_fast();
}
#[test]
fn test_duration_nanoseconds() {
let result =
VelocityResult::pass("id", "name", "details").with_duration(Duration::from_nanos(1));
assert_eq!(result.duration, Some(Duration::from_nanos(1)));
}
#[test]
fn test_duration_microseconds() {
let result =
VelocityResult::pass("id", "name", "details").with_duration(Duration::from_micros(500));
assert_eq!(result.duration, Some(Duration::from_micros(500)));
}
#[test]
fn test_p1_makefile_content_check() {
let result = p1_test_fast_exists();
assert_eq!(result.id, "P1");
assert!(!result.details.is_empty());
}
#[test]
fn test_p2_makefile_smoke_check() {
let result = p2_test_fast_under_2s();
assert_eq!(result.id, "P2");
assert!(!result.details.is_empty());
}
#[path = "velocity_tests_heavy.rs"]
mod velocity_tests_heavy;