The previous tests never compiled: they used GUT's assert functions, Godot 3 APIs and reassigned autoload functions, so no test ran. - 90 tests: unit tests for the playlist, songs, player scoring, time formatting, search and the server client, plus integration tests that run MainWindow and SyncWindow against a fake server - Keybind tests check that Alt+<number> and Ctrl+Alt+<number> keep following the player rows while players are added and removed - run_tests.sh finds Godot and runs the suite headless (~10 seconds) - CI runs the tests before the build job in gitea-build.yaml; the separate test.yml used a GitHub action that does not exist - GdUnit4 is committed instead of ignored, since the project enables it, and .gitea/ is no longer ignored - Exported builds leave out tests/ and addons/gdUnit4/
79 lines
2.3 KiB
GDScript
79 lines
2.3 KiB
GDScript
class_name GdUnitAssertImpl
|
|
extends GdUnitAssert
|
|
|
|
|
|
var _current :Variant
|
|
var _custom_failure_message :String = ""
|
|
var _additional_failure_message: String = ""
|
|
|
|
|
|
func _init(current :Variant) -> void:
|
|
_current = current
|
|
# save the actual assert instance on the current thread context
|
|
GdUnitThreadManager.get_current_context().set_assert(self)
|
|
GdAssertReports.reset_last_error_line_number()
|
|
|
|
|
|
func current_value() -> Variant:
|
|
return _current
|
|
|
|
|
|
func report_success() -> GdUnitAssert:
|
|
GdAssertReports.report_success()
|
|
return self
|
|
|
|
|
|
func report_error(failure :String, failure_line_number: int = -1) -> GdUnitAssert:
|
|
var stack_trace := GdUnitStackTrace.new()
|
|
var line_number := failure_line_number if failure_line_number != -1 else stack_trace.get_line_number()
|
|
GdAssertReports.set_last_error_line_number(line_number)
|
|
var failure_message := GdAssertMessages.build_failure_message(failure, _additional_failure_message, _custom_failure_message)
|
|
GdAssertReports.report_error(GdUnitError.new(failure_message, line_number, stack_trace))
|
|
return self
|
|
|
|
|
|
func do_fail_not_implemented() -> GdUnitAssert:
|
|
return report_error(GdAssertMessages.error_not_implemented())
|
|
|
|
|
|
func do_fail_with_message(message: String) -> GdUnitAssert:
|
|
return report_error(GdAssertMessages.error_with_message(message))
|
|
|
|
|
|
func override_failure_message(message: String) -> GdUnitAssert:
|
|
_custom_failure_message = message
|
|
return self
|
|
|
|
|
|
func append_failure_message(message: String) -> GdUnitAssert:
|
|
_additional_failure_message = message
|
|
return self
|
|
|
|
|
|
func is_null() -> GdUnitAssert:
|
|
var current :Variant = current_value()
|
|
if current != null:
|
|
return report_error(GdAssertMessages.error_is_null(current))
|
|
return report_success()
|
|
|
|
|
|
func is_not_null() -> GdUnitAssert:
|
|
var current :Variant = current_value()
|
|
if current == null:
|
|
return report_error(GdAssertMessages.error_is_not_null())
|
|
return report_success()
|
|
|
|
|
|
func is_equal(expected: Variant) -> GdUnitAssert:
|
|
var current: Variant = current_value()
|
|
if not GdObjects.equals(current, expected):
|
|
return report_error(GdAssertMessages.error_equal(current, expected))
|
|
return report_success()
|
|
|
|
|
|
func is_not_equal(expected: Variant) -> GdUnitAssert:
|
|
var current: Variant = current_value()
|
|
if GdObjects.equals(current, expected):
|
|
return report_error(GdAssertMessages.error_not_equal(current, expected))
|
|
return report_success()
|