more lint and formatting
Some checks failed
Continuous Integration / Code Formatting (push) Successful in 33s
Continuous Integration / Code Quality Check (push) Successful in 29s
Continuous Integration / Test Execution (push) Failing after 16s
Continuous Integration / CI Summary (push) Failing after 4s

This commit is contained in:
2025-10-01 15:04:40 +04:00
parent 538459f323
commit 3b8da89ad5
31 changed files with 2112 additions and 691 deletions

View File

@@ -69,12 +69,17 @@ func test_basic_functionality():
# Test that AudioManager has expected methods
var expected_methods = ["update_music_volume", "play_ui_click"]
TestHelperClass.assert_has_methods(audio_manager, expected_methods, "AudioManager methods")
TestHelperClass.assert_has_methods(
audio_manager, expected_methods, "AudioManager methods"
)
# Test that AudioManager has expected constants
TestHelperClass.assert_true("MUSIC_PATH" in audio_manager, "MUSIC_PATH constant exists")
TestHelperClass.assert_true(
"UI_CLICK_SOUND_PATH" in audio_manager, "UI_CLICK_SOUND_PATH constant exists"
"MUSIC_PATH" in audio_manager, "MUSIC_PATH constant exists"
)
TestHelperClass.assert_true(
"UI_CLICK_SOUND_PATH" in audio_manager,
"UI_CLICK_SOUND_PATH constant exists"
)
@@ -85,9 +90,12 @@ func test_audio_constants():
var music_path = audio_manager.MUSIC_PATH
var click_path = audio_manager.UI_CLICK_SOUND_PATH
TestHelperClass.assert_true(music_path.begins_with("res://"), "Music path uses res:// protocol")
TestHelperClass.assert_true(
click_path.begins_with("res://"), "Click sound path uses res:// protocol"
music_path.begins_with("res://"), "Music path uses res:// protocol"
)
TestHelperClass.assert_true(
click_path.begins_with("res://"),
"Click sound path uses res:// protocol"
)
# Test file extensions
@@ -101,11 +109,17 @@ func test_audio_constants():
if click_path.ends_with(ext):
click_has_valid_ext = true
TestHelperClass.assert_true(music_has_valid_ext, "Music file has valid audio extension")
TestHelperClass.assert_true(click_has_valid_ext, "Click sound has valid audio extension")
TestHelperClass.assert_true(
music_has_valid_ext, "Music file has valid audio extension"
)
TestHelperClass.assert_true(
click_has_valid_ext, "Click sound has valid audio extension"
)
# Test that audio files exist
TestHelperClass.assert_true(ResourceLoader.exists(music_path), "Music file exists at path")
TestHelperClass.assert_true(
ResourceLoader.exists(music_path), "Music file exists at path"
)
TestHelperClass.assert_true(
ResourceLoader.exists(click_path), "Click sound file exists at path"
)
@@ -115,9 +129,12 @@ func test_audio_player_initialization():
TestHelperClass.print_step("Audio Player Initialization")
# Test music player initialization
TestHelperClass.assert_not_null(audio_manager.music_player, "Music player is initialized")
TestHelperClass.assert_not_null(
audio_manager.music_player, "Music player is initialized"
)
TestHelperClass.assert_true(
audio_manager.music_player is AudioStreamPlayer, "Music player is AudioStreamPlayer type"
audio_manager.music_player is AudioStreamPlayer,
"Music player is AudioStreamPlayer type"
)
TestHelperClass.assert_true(
audio_manager.music_player.get_parent() == audio_manager,
@@ -125,7 +142,9 @@ func test_audio_player_initialization():
)
# Test UI click player initialization
TestHelperClass.assert_not_null(audio_manager.ui_click_player, "UI click player is initialized")
TestHelperClass.assert_not_null(
audio_manager.ui_click_player, "UI click player is initialized"
)
TestHelperClass.assert_true(
audio_manager.ui_click_player is AudioStreamPlayer,
"UI click player is AudioStreamPlayer type"
@@ -137,10 +156,14 @@ func test_audio_player_initialization():
# Test audio bus assignment
TestHelperClass.assert_equal(
"Music", audio_manager.music_player.bus, "Music player assigned to Music bus"
"Music",
audio_manager.music_player.bus,
"Music player assigned to Music bus"
)
TestHelperClass.assert_equal(
"SFX", audio_manager.ui_click_player.bus, "UI click player assigned to SFX bus"
"SFX",
audio_manager.ui_click_player.bus,
"UI click player assigned to SFX bus"
)
@@ -148,26 +171,38 @@ func test_stream_loading_and_validation():
TestHelperClass.print_step("Stream Loading and Validation")
# Test music stream loading
TestHelperClass.assert_not_null(audio_manager.music_player.stream, "Music stream is loaded")
TestHelperClass.assert_not_null(
audio_manager.music_player.stream, "Music stream is loaded"
)
if audio_manager.music_player.stream:
TestHelperClass.assert_true(
audio_manager.music_player.stream is AudioStream, "Music stream is AudioStream type"
audio_manager.music_player.stream is AudioStream,
"Music stream is AudioStream type"
)
# Test click stream loading
TestHelperClass.assert_not_null(audio_manager.click_stream, "Click stream is loaded")
TestHelperClass.assert_not_null(
audio_manager.click_stream, "Click stream is loaded"
)
if audio_manager.click_stream:
TestHelperClass.assert_true(
audio_manager.click_stream is AudioStream, "Click stream is AudioStream type"
audio_manager.click_stream is AudioStream,
"Click stream is AudioStream type"
)
# Test stream resource loading directly
var loaded_music = load(audio_manager.MUSIC_PATH)
TestHelperClass.assert_not_null(loaded_music, "Music resource loads successfully")
TestHelperClass.assert_true(loaded_music is AudioStream, "Loaded music is AudioStream type")
TestHelperClass.assert_not_null(
loaded_music, "Music resource loads successfully"
)
TestHelperClass.assert_true(
loaded_music is AudioStream, "Loaded music is AudioStream type"
)
var loaded_click = load(audio_manager.UI_CLICK_SOUND_PATH)
TestHelperClass.assert_not_null(loaded_click, "Click resource loads successfully")
TestHelperClass.assert_not_null(
loaded_click, "Click resource loads successfully"
)
TestHelperClass.assert_true(
loaded_click is AudioStream, "Loaded click sound is AudioStream type"
)
@@ -186,7 +221,9 @@ func test_audio_bus_configuration():
# Test player bus assignments match actual AudioServer buses
if music_bus_index >= 0:
TestHelperClass.assert_equal(
"Music", audio_manager.music_player.bus, "Music player correctly assigned to Music bus"
"Music",
audio_manager.music_player.bus,
"Music player correctly assigned to Music bus"
)
if sfx_bus_index >= 0:
@@ -208,20 +245,27 @@ func test_volume_management():
# Test volume update to valid range
audio_manager.update_music_volume(0.5)
TestHelperClass.assert_float_equal(
linear_to_db(0.5), audio_manager.music_player.volume_db, 0.001, "Music volume set correctly"
linear_to_db(0.5),
audio_manager.music_player.volume_db,
0.001,
"Music volume set correctly"
)
# Test volume update to zero (should stop music)
audio_manager.update_music_volume(0.0)
TestHelperClass.assert_equal(
linear_to_db(0.0), audio_manager.music_player.volume_db, "Zero volume set correctly"
linear_to_db(0.0),
audio_manager.music_player.volume_db,
"Zero volume set correctly"
)
# Note: We don't test playing state as it depends on initialization conditions
# Test volume update to maximum
audio_manager.update_music_volume(1.0)
TestHelperClass.assert_equal(
linear_to_db(1.0), audio_manager.music_player.volume_db, "Maximum volume set correctly"
linear_to_db(1.0),
audio_manager.music_player.volume_db,
"Maximum volume set correctly"
)
# Test volume range validation
@@ -248,7 +292,8 @@ func test_music_playback_control():
audio_manager.music_player, "Music player exists for playback testing"
)
TestHelperClass.assert_not_null(
audio_manager.music_player.stream, "Music player has stream for playback testing"
audio_manager.music_player.stream,
"Music player has stream for playback testing"
)
# Test playback state management
@@ -279,8 +324,12 @@ func test_ui_sound_effects():
TestHelperClass.print_step("UI Sound Effects")
# Test UI click functionality
TestHelperClass.assert_not_null(audio_manager.ui_click_player, "UI click player exists")
TestHelperClass.assert_not_null(audio_manager.click_stream, "Click stream is loaded")
TestHelperClass.assert_not_null(
audio_manager.ui_click_player, "UI click player exists"
)
TestHelperClass.assert_not_null(
audio_manager.click_stream, "Click stream is loaded"
)
# Test that play_ui_click can be called safely
var original_stream = audio_manager.ui_click_player.stream
@@ -296,7 +345,9 @@ func test_ui_sound_effects():
# Test multiple rapid clicks (should not cause errors)
for i in range(3):
audio_manager.play_ui_click()
TestHelperClass.assert_true(true, "Rapid click %d handled safely" % (i + 1))
TestHelperClass.assert_true(
true, "Rapid click %d handled safely" % (i + 1)
)
# Test click with null stream
var backup_stream = audio_manager.click_stream
@@ -315,7 +366,9 @@ func test_stream_loop_configuration():
if music_stream is AudioStreamWAV:
# For WAV files, check loop mode
var has_loop_mode = "loop_mode" in music_stream
TestHelperClass.assert_true(has_loop_mode, "WAV stream has loop_mode property")
TestHelperClass.assert_true(
has_loop_mode, "WAV stream has loop_mode property"
)
if has_loop_mode:
TestHelperClass.assert_equal(
AudioStreamWAV.LOOP_FORWARD,
@@ -325,12 +378,18 @@ func test_stream_loop_configuration():
elif music_stream is AudioStreamOggVorbis:
# For OGG files, check loop property
var has_loop = "loop" in music_stream
TestHelperClass.assert_true(has_loop, "OGG stream has loop property")
TestHelperClass.assert_true(
has_loop, "OGG stream has loop property"
)
if has_loop:
TestHelperClass.assert_true(music_stream.loop, "OGG stream loop enabled")
TestHelperClass.assert_true(
music_stream.loop, "OGG stream loop enabled"
)
# Test loop configuration for different stream types
TestHelperClass.assert_true(true, "Stream loop configuration tested based on type")
TestHelperClass.assert_true(
true, "Stream loop configuration tested based on type"
)
func test_error_handling():
@@ -341,15 +400,18 @@ func test_error_handling():
# Test that AudioManager initializes even with potential issues
TestHelperClass.assert_not_null(
audio_manager, "AudioManager initializes despite potential resource issues"
audio_manager,
"AudioManager initializes despite potential resource issues"
)
# Test that players are still created even if streams fail to load
TestHelperClass.assert_not_null(
audio_manager.music_player, "Music player created regardless of stream loading"
audio_manager.music_player,
"Music player created regardless of stream loading"
)
TestHelperClass.assert_not_null(
audio_manager.ui_click_player, "UI click player created regardless of stream loading"
audio_manager.ui_click_player,
"UI click player created regardless of stream loading"
)
# Test null stream handling in play_ui_click
@@ -358,7 +420,9 @@ func test_error_handling():
# This should not crash
audio_manager.play_ui_click()
TestHelperClass.assert_true(true, "play_ui_click handles null stream gracefully")
TestHelperClass.assert_true(
true, "play_ui_click handles null stream gracefully"
)
# Restore original stream
audio_manager.click_stream = original_click_stream