test(lesavka): cover microphone flag parsing

This commit is contained in:
Brad Stein 2026-05-19 10:25:53 -03:00
parent 8f911da06b
commit 4dd2bfad51

View File

@ -1,8 +1,10 @@
use super::{
MIC_CHANNELS, MIC_SAMPLE_BYTES, MIC_SAMPLE_RATE, buffer_duration_us, mic_packet_target_bytes,
pcm_payload_duration_us, split_audio_sample,
MIC_CHANNELS, MIC_SAMPLE_BYTES, MIC_SAMPLE_RATE, bool_env_enabled, buffer_duration_us,
explicit_media_sources_required, mic_noise_suppression_from_env, mic_noise_suppression_level,
mic_packet_target_bytes, pcm_payload_duration_us, split_audio_sample,
};
use gstreamer as gst;
use serial_test::serial;
fn buffer_with_duration(size: usize, duration: Option<gst::ClockTime>) -> gst::Buffer {
gst::init().ok();
@ -77,3 +79,45 @@ fn trailing_microphone_packet_keeps_remaining_bytes() {
assert_eq!(packets[2].data.len(), 960);
assert_eq!(packets[2].pts, 45_000);
}
#[test]
#[serial]
fn microphone_noise_suppression_level_accepts_named_presets() {
let cases = [
("low", "low"),
("medium", "moderate"),
("moderate", "moderate"),
("high", "high"),
("very_high", "very-high"),
("aggressive", "very-high"),
("unknown", "very-high"),
];
for (raw, expected) in cases {
temp_env::with_var("LESAVKA_MIC_NOISE_SUPPRESSION_LEVEL", Some(raw), || {
assert_eq!(mic_noise_suppression_level(), expected);
});
}
}
#[test]
#[serial]
fn boolean_microphone_flags_accept_plain_english_true_values() {
for raw in ["1", "true", "yes", "on"] {
temp_env::with_vars(
[
("LESAVKA_REQUIRE_EXPLICIT_MEDIA_SOURCES", Some(raw)),
("LESAVKA_MIC_NOISE_SUPPRESSION", Some(raw)),
],
|| {
assert!(explicit_media_sources_required());
assert!(mic_noise_suppression_from_env());
assert!(bool_env_enabled("LESAVKA_MIC_NOISE_SUPPRESSION"));
},
);
}
temp_env::with_var("LESAVKA_MIC_NOISE_SUPPRESSION", Some("false"), || {
assert!(!mic_noise_suppression_from_env());
});
}