Files
Cozypaw-Hospital/test/unit/test_audio_manager.gd
2026-05-10 21:48:38 +02:00

92 lines
3.2 KiB
GDScript

## Tests for AudioManager — floor derivation, no-op guard, SFX key validation.
extends GutTest
func before_each() -> void:
AudioManager._current_floor = -1
AudioManager._is_crossfading = false
func test_derive_floor_floor0_reception() -> void:
assert_eq(AudioManager._derive_floor_from_room("reception"), 0)
func test_derive_floor_floor0_all_rooms() -> void:
assert_eq(AudioManager._derive_floor_from_room("giftshop"), 0)
assert_eq(AudioManager._derive_floor_from_room("restaurant"), 0)
assert_eq(AudioManager._derive_floor_from_room("emergency"), 0)
func test_derive_floor_floor1_all_rooms() -> void:
assert_eq(AudioManager._derive_floor_from_room("xray"), 1)
assert_eq(AudioManager._derive_floor_from_room("pharmacy"), 1)
assert_eq(AudioManager._derive_floor_from_room("lab"), 1)
assert_eq(AudioManager._derive_floor_from_room("patient_rooms"), 1)
func test_derive_floor_floor2_all_rooms() -> void:
assert_eq(AudioManager._derive_floor_from_room("ultrasound"), 2)
assert_eq(AudioManager._derive_floor_from_room("delivery_room"), 2)
assert_eq(AudioManager._derive_floor_from_room("nursery"), 2)
func test_derive_floor_garden() -> void:
assert_eq(AudioManager._derive_floor_from_room("garden_party"), 3)
func test_derive_floor_unknown_returns_minus_one() -> void:
assert_eq(AudioManager._derive_floor_from_room("unknown_room"), -1)
assert_eq(AudioManager._derive_floor_from_room(""), -1)
func test_get_current_floor_starts_at_minus_one() -> void:
assert_eq(AudioManager.get_current_floor(), -1)
func test_play_floor_music_same_floor_is_noop() -> void:
AudioManager._current_floor = 0
AudioManager.play_floor_music(0)
assert_eq(AudioManager.get_current_floor(), 0)
func test_play_sfx_unknown_key_does_not_crash() -> void:
AudioManager.play_sfx("nonexistent_event_xyz")
pass
func test_sfx_map_has_all_seven_keys() -> void:
assert_true(AudioManager._SFX_MAP.has("chest_tap"))
assert_true(AudioManager._SFX_MAP.has("item_spawn"))
assert_true(AudioManager._SFX_MAP.has("item_drag_start"))
assert_true(AudioManager._SFX_MAP.has("item_drop_hand"))
assert_true(AudioManager._SFX_MAP.has("item_drop_outfit"))
assert_true(AudioManager._SFX_MAP.has("item_return_chest"))
assert_true(AudioManager._SFX_MAP.has("item_drop_floor"))
func test_music_map_has_all_four_floors() -> void:
assert_true(AudioManager._MUSIC_MAP.has(0))
assert_true(AudioManager._MUSIC_MAP.has(1))
assert_true(AudioManager._MUSIC_MAP.has(2))
assert_true(AudioManager._MUSIC_MAP.has(3))
func test_default_music_volume_constant_is_0_6() -> void:
assert_eq(AudioManager.DEFAULT_MUSIC_VOLUME, 0.6)
func test_sfx_map_has_all_interactive_object_keys() -> void:
assert_true(AudioManager._SFX_MAP.has("xray_scan"))
assert_true(AudioManager._SFX_MAP.has("tea_pour"))
assert_true(AudioManager._SFX_MAP.has("cradle_rock"))
assert_true(AudioManager._SFX_MAP.has("gift_open"))
assert_true(AudioManager._SFX_MAP.has("ambulance_siren"))
assert_true(AudioManager._SFX_MAP.has("delivery_cheer"))
assert_true(AudioManager._SFX_MAP.has("object_tap"))
func test_sfx_map_has_all_character_keys() -> void:
assert_true(AudioManager._SFX_MAP.has("character_pickup"))
assert_true(AudioManager._SFX_MAP.has("character_place"))
assert_true(AudioManager._SFX_MAP.has("character_tap"))