The quiz card's settings are saved to quiz_settings.cfg in OS.get_config_dir() on every change and loaded at start. Debug builds use their own file, and MUSICPLAYER_CONFIG_DIR moves the file elsewhere so tests never touch it. Count plays in statistics and Prefer less played soundtracks are not saved and move from the quiz card to the Settings popup.
66 lines
1.6 KiB
GDScript
66 lines
1.6 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("SettingsPopup").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("QuizToolbar/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("QuizToolbar/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)
|
|
|
|
(_window.get_node("SettingsPopup") as SettingsPopup).open()
|
|
|
|
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("SongControls/ShowAnswerButton")
|
|
|
|
assert_int(_server.count("/music/played?song=0")).is_equal(played_before)
|
|
|
|
|
|
func test_winning_score_cannot_go_below_one() -> void:
|
|
_press("QuizSettingsButton")
|
|
var lower_button: Button = _quiz.get_node("QuizSettingsCard").get_node("%LowerButton")
|
|
|
|
for i: int in 3:
|
|
lower_button.pressed.emit()
|
|
|
|
assert_int(Settings.winning_score).is_equal(1)
|