Files
MusicPlayer/tests/integration/test_stats_after_win.gd
T
Sansan 428decf73a Turn statistics back on for a new game and fix low winning scores
Winning turned statistics off and nothing turned them back on, while
the Settings checkbox still showed them as on. Resetting points now
turns them back on if the win turned them off, and the checkbox shows
the current state when Settings is opened.

A winning score of 1 could never be won and with 2 the first point was
not announced as match point, because the first-point check ran first.
The winning score also could not be kept from going below 1.
2026-10-06 08:32:56 +02:00

66 lines
1.7 KiB
GDScript

extends MainWindowTestSuite
## Winning turns statistics off until a new game starts.
var _crono: PlayerObject
func before_test() -> void:
super()
_crono = _add_player("Crono")
await _play_first_song()
Settings.winning_score = 1
func _stats_checkbox() -> CheckButton:
return _window.get_node("SettingsWindow").get_node("%AddToDatabaseCheckButton")
func test_winning_turns_statistics_off() -> void:
await _give_point_with_keybind(1)
assert_bool(Settings.add_to_stats).is_false()
func test_resetting_points_turns_statistics_back_on() -> void:
await _give_point_with_keybind(1)
_press("ResetPointsButton")
assert_bool(Settings.add_to_stats).is_true()
func test_statistics_turned_off_by_hand_stay_off_after_reset() -> void:
Settings.add_to_stats = false
await _give_point_with_keybind(1)
_press("ResetPointsButton")
assert_bool(Settings.add_to_stats).is_false()
func test_settings_checkbox_shows_statistics_off_after_win() -> void:
await _give_point_with_keybind(1)
_press("SettingsButton")
assert_bool(_stats_checkbox().button_pressed).is_false()
func test_songs_after_a_win_are_not_counted() -> void:
await _give_point_with_keybind(1)
var played_before: int = _server.count("/music/played?song=0")
_press("ShowAnswerButton")
assert_int(_server.count("/music/played?song=0")).is_equal(played_before)
func test_winning_score_cannot_go_below_one() -> void:
_press("SettingsButton")
var lower_button: Button = _window.get_node("SettingsWindow").get_node("%LowerButton")
for i: int in 3:
lower_button.pressed.emit()
assert_int(Settings.winning_score).is_equal(1)