refactor: move all tests out of src/ into tests/, remove unnecessary tests

This commit is contained in:
2025-08-08 08:50:52 -05:00
parent 9d5ca54234
commit b308bc0ef7
26 changed files with 1018 additions and 2354 deletions

View File

@@ -162,156 +162,3 @@ impl Audio {
self.disabled
}
}
#[cfg(test)]
mod tests {
use super::*;
use std::sync::Once;
static INIT: Once = Once::new();
fn init_sdl() -> Result<(), String> {
INIT.call_once(|| {
if let Err(e) = sdl2::init() {
eprintln!("Failed to initialize SDL2: {}", e);
}
});
Ok(())
}
#[test]
fn test_sound_assets_array() {
assert_eq!(SOUND_ASSETS.len(), 4);
assert_eq!(SOUND_ASSETS[0], Asset::Wav1);
assert_eq!(SOUND_ASSETS[1], Asset::Wav2);
assert_eq!(SOUND_ASSETS[2], Asset::Wav3);
assert_eq!(SOUND_ASSETS[3], Asset::Wav4);
}
#[test]
fn test_audio_asset_paths() {
// Test that all sound assets have valid paths
for asset in SOUND_ASSETS.iter() {
let path = asset.path();
assert!(!path.is_empty());
assert!(path.contains("sound/waka/"));
assert!(path.ends_with(".ogg"));
}
}
// Only run SDL2-dependent tests if SDL2 initialization succeeds
#[test]
fn test_audio_basic_functionality() {
if let Err(_) = init_sdl() {
eprintln!("Skipping SDL2-dependent tests due to initialization failure");
return;
}
// Test basic audio creation
let audio = Audio::new();
assert_eq!(audio.is_muted(), false);
assert_eq!(audio.next_sound_index, 0);
// Audio might be disabled if initialization failed
if !audio.is_disabled() {
assert_eq!(audio.sounds.len(), 4);
}
}
#[test]
fn test_audio_mute_functionality() {
if let Err(_) = init_sdl() {
eprintln!("Skipping SDL2-dependent tests due to initialization failure");
return;
}
let mut audio = Audio::new();
// Test mute/unmute
assert_eq!(audio.is_muted(), false);
audio.set_mute(true);
assert_eq!(audio.is_muted(), true);
audio.set_mute(false);
assert_eq!(audio.is_muted(), false);
}
#[test]
fn test_audio_sound_rotation() {
if let Err(_) = init_sdl() {
eprintln!("Skipping SDL2-dependent tests due to initialization failure");
return;
}
let mut audio = Audio::new();
// Skip test if audio is disabled
if audio.is_disabled() {
eprintln!("Skipping sound rotation test due to disabled audio");
return;
}
let initial_index = audio.next_sound_index;
// Test sound rotation
for i in 0..4 {
audio.eat();
assert_eq!(audio.next_sound_index, (initial_index + i + 1) % 4);
}
assert_eq!(audio.next_sound_index, initial_index);
}
#[test]
fn test_audio_sound_index_bounds() {
if let Err(_) = init_sdl() {
eprintln!("Skipping SDL2-dependent tests due to initialization failure");
return;
}
let audio = Audio::new();
// Skip test if audio is disabled
if audio.is_disabled() {
eprintln!("Skipping sound index bounds test due to disabled audio");
return;
}
assert!(audio.next_sound_index < audio.sounds.len());
}
#[test]
fn test_audio_default_impl() {
if let Err(_) = init_sdl() {
eprintln!("Skipping SDL2-dependent tests due to initialization failure");
return;
}
let audio = Audio::default();
assert_eq!(audio.is_muted(), false);
assert_eq!(audio.next_sound_index, 0);
// Audio might be disabled if initialization failed
if !audio.is_disabled() {
assert_eq!(audio.sounds.len(), 4);
}
}
#[test]
fn test_audio_disabled_state() {
if let Err(_) = init_sdl() {
eprintln!("Skipping SDL2-dependent tests due to initialization failure");
return;
}
// Test that disabled audio doesn't crash when calling functions
let mut audio = Audio::new();
// These should not panic even if audio is disabled
audio.eat();
audio.set_mute(true);
audio.set_mute(false);
// Test that we can check the disabled state
let _is_disabled = audio.is_disabled();
}
}