diff --git a/log.gd b/log.gd index 8f374b7..8a0c113 100644 --- a/log.gd +++ b/log.gd @@ -11,19 +11,16 @@ var log_rows: Array func add_log_row(text: String) -> void: var log_row: String = get_time() + text log_rows.append(log_row) - update_log() + log_box.add_child(make_log_label(log_row)) -func update_log() -> void: - print("update_log") - Settings.delete_children(log_box) - for row: String in log_rows: - var log_label: Label = Label.new() - log_label.set_texture_filter(TextureFilter.TEXTURE_FILTER_NEAREST) - log_label.add_theme_font_size_override("font_size", 20) - log_label.text = row - log_label.autowrap_mode = TextServer.AUTOWRAP_WORD - log_box.add_child(log_label) +func make_log_label(row: String) -> Label: + var log_label: Label = Label.new() + log_label.set_texture_filter(TextureFilter.TEXTURE_FILTER_NEAREST) + log_label.add_theme_font_size_override("font_size", 20) + log_label.text = row + log_label.autowrap_mode = TextServer.AUTOWRAP_WORD + return log_label func get_time() -> String: - var dateTime: Dictionary = Time.get_datetime_dict_from_system() - return "" + str(dateTime.hour) + ":" + str(dateTime.minute) + ":" + str(dateTime.second) + " " + var time: Dictionary = Time.get_time_dict_from_system() + return "%02d:%02d:%02d " % [time.hour, time.minute, time.second] diff --git a/tests/integration/test_main_window.gd b/tests/integration/test_main_window.gd index 9c0c26d..0b29042 100644 --- a/tests/integration/test_main_window.gd +++ b/tests/integration/test_main_window.gd @@ -226,3 +226,17 @@ func test_show_answer_before_first_song_does_not_reveal_next_song() -> void: assert_str((_window.get_node("VBoxContainer/SoundtrackLabel") as Label).text) \ .is_equal("????????") + + +func test_log_adds_one_row_per_point_with_padded_time() -> void: + var log_box: VBoxContainer = _window.get_node("%Log").get_node("%LogVBoxContainer") + var crono: PlayerObject = _add_player("Crono") + await _play_first_song() + + crono.add_point() + crono.minus_point() + + assert_int(log_box.get_child_count()).is_equal(2) + var time_pattern: RegEx = RegEx.create_from_string("^\\d\\d:\\d\\d:\\d\\d Crono got a point$") + assert_object(time_pattern.search((log_box.get_child(0) as Label).text)).is_not_null() + assert_str((log_box.get_child(1) as Label).text).ends_with("Crono lost a point")