Indent every script with tabs, like the Godot editor does
This commit is contained in:
1 parent
8c1987807c
commit
bad4b3ad8b
35 files changed
+1653
-1653
No files matched your search
@@ -8,139 +8,139 @@ var _panel: PlayersPanel
|
||||
|
||||
|
||||
func before_test() -> void:
|
||||
_snapshot = AutoloadSnapshot.take([Settings])
|
||||
Settings.player_array.clear()
|
||||
Settings.edit_players = false
|
||||
_runner = scene_runner("res://PlayersPanel.tscn")
|
||||
_panel = _runner.scene()
|
||||
_snapshot = AutoloadSnapshot.take([Settings])
|
||||
Settings.player_array.clear()
|
||||
Settings.edit_players = false
|
||||
_runner = scene_runner("res://PlayersPanel.tscn")
|
||||
_panel = _runner.scene()
|
||||
|
||||
|
||||
func after_test() -> void:
|
||||
await await_idle_frame()
|
||||
_snapshot.restore()
|
||||
await await_idle_frame()
|
||||
_snapshot.restore()
|
||||
|
||||
|
||||
func _rows() -> Array[Node]:
|
||||
return _panel.players_list_container.get_children()
|
||||
return _panel.players_list_container.get_children()
|
||||
|
||||
|
||||
func _add(player_name: String) -> void:
|
||||
_panel.new_player_name_field.text = player_name
|
||||
_panel.add_player()
|
||||
_panel.new_player_name_field.text = player_name
|
||||
_panel.add_player()
|
||||
|
||||
|
||||
func _click(control: Control) -> void:
|
||||
_runner.set_mouse_position(_panel.get_viewport().get_final_transform()
|
||||
* control.get_global_rect().get_center())
|
||||
await _runner.simulate_mouse_button_pressed(MOUSE_BUTTON_LEFT)
|
||||
await _runner.await_input_processed()
|
||||
_runner.set_mouse_position(_panel.get_viewport().get_final_transform()
|
||||
* control.get_global_rect().get_center())
|
||||
await _runner.simulate_mouse_button_pressed(MOUSE_BUTTON_LEFT)
|
||||
await _runner.await_input_processed()
|
||||
|
||||
|
||||
func test_add_button_shows_and_hides_the_add_row() -> void:
|
||||
assert_bool(_panel.add_player_container.visible).is_false()
|
||||
assert_bool(_panel.add_player_container.visible).is_false()
|
||||
|
||||
await _click(_panel.add_players_button)
|
||||
assert_bool(_panel.add_player_container.visible).is_true()
|
||||
assert_bool(Settings.edit_players).is_true()
|
||||
await _click(_panel.add_players_button)
|
||||
assert_bool(_panel.add_player_container.visible).is_true()
|
||||
assert_bool(Settings.edit_players).is_true()
|
||||
|
||||
await _click(_panel.add_players_button)
|
||||
assert_bool(_panel.add_player_container.visible).is_false()
|
||||
assert_bool(Settings.edit_players).is_false()
|
||||
await _click(_panel.add_players_button)
|
||||
assert_bool(_panel.add_player_container.visible).is_false()
|
||||
assert_bool(Settings.edit_players).is_false()
|
||||
|
||||
|
||||
func test_adding_a_name_adds_a_player_and_a_row() -> void:
|
||||
var signals: GdUnitSignalAssert = assert_signal(monitor_signals(_panel))
|
||||
var signals: GdUnitSignalAssert = assert_signal(monitor_signals(_panel))
|
||||
|
||||
_add("Crono")
|
||||
_add("Crono")
|
||||
|
||||
assert_int(Settings.player_array.size()).is_equal(1)
|
||||
var crono: PlayerObject = Settings.player_array[0]
|
||||
assert_str(crono.player_name).is_equal("Crono")
|
||||
await signals.is_emitted("player_added", [crono])
|
||||
assert_str(_panel.new_player_name_field.text).is_empty()
|
||||
assert_object((_rows()[0] as Player).player_object).is_same(crono)
|
||||
assert_int(Settings.player_array.size()).is_equal(1)
|
||||
var crono: PlayerObject = Settings.player_array[0]
|
||||
assert_str(crono.player_name).is_equal("Crono")
|
||||
await signals.is_emitted("player_added", [crono])
|
||||
assert_str(_panel.new_player_name_field.text).is_empty()
|
||||
assert_object((_rows()[0] as Player).player_object).is_same(crono)
|
||||
|
||||
|
||||
func test_add_button_in_the_row_adds_the_player() -> void:
|
||||
await _click(_panel.add_players_button)
|
||||
_panel.new_player_name_field.text = "Marle"
|
||||
await _click(_panel.add_players_button)
|
||||
_panel.new_player_name_field.text = "Marle"
|
||||
|
||||
await _click(_panel.add_player_button)
|
||||
await _click(_panel.add_player_button)
|
||||
|
||||
assert_int(Settings.player_array.size()).is_equal(1)
|
||||
assert_int(Settings.player_array.size()).is_equal(1)
|
||||
|
||||
|
||||
func test_enter_in_the_name_field_adds_the_player() -> void:
|
||||
await _click(_panel.add_players_button)
|
||||
_panel.new_player_name_field.text = "Lucca"
|
||||
_panel.new_player_name_field.grab_focus()
|
||||
await _click(_panel.add_players_button)
|
||||
_panel.new_player_name_field.text = "Lucca"
|
||||
_panel.new_player_name_field.grab_focus()
|
||||
|
||||
_runner.simulate_key_pressed(KEY_ENTER)
|
||||
await _runner.await_input_processed()
|
||||
_runner.simulate_key_pressed(KEY_ENTER)
|
||||
await _runner.await_input_processed()
|
||||
|
||||
assert_array(Settings.player_array.map(
|
||||
func(p: PlayerObject) -> String: return p.player_name)).contains_exactly(["Lucca"])
|
||||
assert_array(Settings.player_array.map(
|
||||
func(p: PlayerObject) -> String: return p.player_name)).contains_exactly(["Lucca"])
|
||||
|
||||
|
||||
func test_empty_name_adds_nobody() -> void:
|
||||
var signals: GdUnitSignalAssert = assert_signal(monitor_signals(_panel))
|
||||
var signals: GdUnitSignalAssert = assert_signal(monitor_signals(_panel))
|
||||
|
||||
_add("")
|
||||
_add("")
|
||||
|
||||
assert_array(Settings.player_array).is_empty()
|
||||
assert_array(_rows()).is_empty()
|
||||
await signals.wait_until(200).is_not_emitted("player_added")
|
||||
assert_array(Settings.player_array).is_empty()
|
||||
assert_array(_rows()).is_empty()
|
||||
await signals.wait_until(200).is_not_emitted("player_added")
|
||||
|
||||
|
||||
func test_cannot_add_more_than_max_players() -> void:
|
||||
for i: int in Settings.MAX_NUMBER_OF_PLAYERS + 1:
|
||||
_add("Player %d" % i)
|
||||
for i: int in Settings.MAX_NUMBER_OF_PLAYERS + 1:
|
||||
_add("Player %d" % i)
|
||||
|
||||
assert_int(Settings.player_array.size()).is_equal(Settings.MAX_NUMBER_OF_PLAYERS)
|
||||
assert_int(_rows().size()).is_equal(Settings.MAX_NUMBER_OF_PLAYERS)
|
||||
assert_int(Settings.player_array.size()).is_equal(Settings.MAX_NUMBER_OF_PLAYERS)
|
||||
assert_int(_rows().size()).is_equal(Settings.MAX_NUMBER_OF_PLAYERS)
|
||||
|
||||
|
||||
func test_rows_follow_player_order_and_numbering() -> void:
|
||||
_add("Crono")
|
||||
_add("Marle")
|
||||
_add("Lucca")
|
||||
_add("Crono")
|
||||
_add("Marle")
|
||||
_add("Lucca")
|
||||
|
||||
assert_array(_rows().map(func(row: Player) -> String: return row.player_object.player_name)) \
|
||||
.contains_exactly(["Crono", "Marle", "Lucca"])
|
||||
assert_array(_rows().map(func(row: Player) -> int: return row.list_index)) \
|
||||
.contains_exactly([0, 1, 2])
|
||||
assert_array(_rows().map(func(row: Player) -> String: return row.player_object.player_name)) \
|
||||
.contains_exactly(["Crono", "Marle", "Lucca"])
|
||||
assert_array(_rows().map(func(row: Player) -> int: return row.list_index)) \
|
||||
.contains_exactly([0, 1, 2])
|
||||
|
||||
|
||||
func test_remove_button_removes_the_player_and_row() -> void:
|
||||
_add("Crono")
|
||||
_add("Marle")
|
||||
var crono: PlayerObject = Settings.player_array[0]
|
||||
var signals: GdUnitSignalAssert = assert_signal(monitor_signals(_panel))
|
||||
_add("Crono")
|
||||
_add("Marle")
|
||||
var crono: PlayerObject = Settings.player_array[0]
|
||||
var signals: GdUnitSignalAssert = assert_signal(monitor_signals(_panel))
|
||||
|
||||
(_rows()[0].get_node("HBoxContainer/RemovePlayer") as BaseButton).pressed.emit()
|
||||
(_rows()[0].get_node("HBoxContainer/RemovePlayer") as BaseButton).pressed.emit()
|
||||
|
||||
await signals.is_emitted("player_removed", [crono])
|
||||
assert_array(Settings.player_array.map(
|
||||
func(p: PlayerObject) -> String: return p.player_name)).contains_exactly(["Marle"])
|
||||
assert_int(_rows().size()).is_equal(1)
|
||||
assert_int((_rows()[0] as Player).list_index).is_equal(0)
|
||||
await signals.is_emitted("player_removed", [crono])
|
||||
assert_array(Settings.player_array.map(
|
||||
func(p: PlayerObject) -> String: return p.player_name)).contains_exactly(["Marle"])
|
||||
assert_int(_rows().size()).is_equal(1)
|
||||
assert_int((_rows()[0] as Player).list_index).is_equal(0)
|
||||
|
||||
|
||||
func test_character_button_asks_for_a_new_character() -> void:
|
||||
_add("Crono")
|
||||
var row: Player = _rows()[0]
|
||||
var signals: GdUnitSignalAssert = assert_signal(monitor_signals(_panel))
|
||||
_add("Crono")
|
||||
var row: Player = _rows()[0]
|
||||
var signals: GdUnitSignalAssert = assert_signal(monitor_signals(_panel))
|
||||
|
||||
(row.get_node("HBoxContainer/Character") as BaseButton).pressed.emit()
|
||||
(row.get_node("HBoxContainer/Character") as BaseButton).pressed.emit()
|
||||
|
||||
await signals.is_emitted("change_character_requested", [row, "Crono"])
|
||||
await signals.is_emitted("change_character_requested", [row, "Crono"])
|
||||
|
||||
|
||||
func test_reload_shows_new_scores() -> void:
|
||||
_add("Crono")
|
||||
Settings.player_array[0].player_score = 3
|
||||
_add("Crono")
|
||||
Settings.player_array[0].player_score = 3
|
||||
|
||||
_panel.reload()
|
||||
_panel.reload()
|
||||
|
||||
assert_str(((_rows()[0] as Player).get_node("HBoxContainer/Name") as Label).text) \
|
||||
.ends_with("Crono: 3")
|
||||
assert_str(((_rows()[0] as Player).get_node("HBoxContainer/Name") as Label).text) \
|
||||
.ends_with("Crono: 3")
|
||||
Reference in new issue
Block a user