gdlint fixes
Some checks failed
GDScript Auto-Formatting / Auto-Format GDScript Code (pull_request) Failing after 12s
GDScript Linting / GDScript Code Quality Check (pull_request) Failing after 11s

This commit is contained in:
2025-09-27 21:45:55 +04:00
parent 35bdd44649
commit 60279542e1
10 changed files with 477 additions and 477 deletions

View File

@@ -4,7 +4,7 @@ extends SceneTree
##
## Tests data loading, value navigation, and input handling.
const TestHelper = preload("res://tests/helpers/TestHelper.gd")
const TestHelperClass = preload("res://tests/helpers/TestHelper.gd")
var stepper_scene: PackedScene
var stepper_instance: Control
@@ -24,7 +24,7 @@ func _initialize():
func run_tests():
TestHelper.print_test_header("ValueStepper Component")
TestHelperClass.print_test_header("ValueStepper Component")
# Store original settings
var settings_manager = root.get_node("SettingsManager")
@@ -47,15 +47,15 @@ func run_tests():
# Cleanup
cleanup_tests()
TestHelper.print_test_footer("ValueStepper Component")
TestHelperClass.print_test_footer("ValueStepper Component")
func setup_test_environment():
TestHelper.print_step("Test Environment Setup")
TestHelperClass.print_step("Test Environment Setup")
# Load ValueStepper scene
stepper_scene = load("res://scenes/ui/components/ValueStepper.tscn")
TestHelper.assert_not_null(stepper_scene, "ValueStepper scene loads successfully")
TestHelperClass.assert_not_null(stepper_scene, "ValueStepper scene loads successfully")
# Create test viewport for isolated testing
test_viewport = SubViewport.new()
@@ -66,7 +66,7 @@ func setup_test_environment():
if stepper_scene:
stepper_instance = stepper_scene.instantiate()
test_viewport.add_child(stepper_instance)
TestHelper.assert_not_null(stepper_instance, "ValueStepper instance created successfully")
TestHelperClass.assert_not_null(stepper_instance, "ValueStepper instance created successfully")
# Wait for initialization
await process_frame
@@ -74,10 +74,10 @@ func setup_test_environment():
func test_basic_functionality():
TestHelper.print_step("Basic Functionality")
TestHelperClass.print_step("Basic Functionality")
if not stepper_instance:
TestHelper.assert_true(false, "ValueStepper instance not available for testing")
TestHelperClass.assert_true(false, "ValueStepper instance not available for testing")
return
# Test that ValueStepper has expected properties
@@ -85,7 +85,7 @@ func test_basic_functionality():
"data_source", "custom_format_function", "values", "display_names", "current_index"
]
for prop in expected_properties:
TestHelper.assert_true(prop in stepper_instance, "ValueStepper has property: " + prop)
TestHelperClass.assert_true(prop in stepper_instance, "ValueStepper has property: " + prop)
# Test that ValueStepper has expected methods
var expected_methods = [
@@ -97,50 +97,50 @@ func test_basic_functionality():
"handle_input_action",
"get_control_name"
]
TestHelper.assert_has_methods(
TestHelperClass.assert_has_methods(
stepper_instance, expected_methods, "ValueStepper component methods"
)
# Test signals
TestHelper.assert_true(
TestHelperClass.assert_true(
stepper_instance.has_signal("value_changed"), "ValueStepper has value_changed signal"
)
# Test UI components
TestHelper.assert_not_null(stepper_instance.left_button, "Left button is available")
TestHelper.assert_not_null(stepper_instance.right_button, "Right button is available")
TestHelper.assert_not_null(stepper_instance.value_display, "Value display label is available")
TestHelperClass.assert_not_null(stepper_instance.left_button, "Left button is available")
TestHelperClass.assert_not_null(stepper_instance.right_button, "Right button is available")
TestHelperClass.assert_not_null(stepper_instance.value_display, "Value display label is available")
# Test UI component types
TestHelper.assert_true(stepper_instance.left_button is Button, "Left button is Button type")
TestHelper.assert_true(stepper_instance.right_button is Button, "Right button is Button type")
TestHelper.assert_true(stepper_instance.value_display is Label, "Value display is Label type")
TestHelperClass.assert_true(stepper_instance.left_button is Button, "Left button is Button type")
TestHelperClass.assert_true(stepper_instance.right_button is Button, "Right button is Button type")
TestHelperClass.assert_true(stepper_instance.value_display is Label, "Value display is Label type")
func test_data_source_loading():
TestHelper.print_step("Data Source Loading")
TestHelperClass.print_step("Data Source Loading")
if not stepper_instance:
return
# Test default language data source
TestHelper.assert_equal(
TestHelperClass.assert_equal(
"language", stepper_instance.data_source, "Default data source is language"
)
# Test that values are loaded
TestHelper.assert_not_null(stepper_instance.values, "Values array is initialized")
TestHelper.assert_not_null(stepper_instance.display_names, "Display names array is initialized")
TestHelper.assert_true(stepper_instance.values is Array, "Values is Array type")
TestHelper.assert_true(stepper_instance.display_names is Array, "Display names is Array type")
TestHelperClass.assert_not_null(stepper_instance.values, "Values array is initialized")
TestHelperClass.assert_not_null(stepper_instance.display_names, "Display names array is initialized")
TestHelperClass.assert_true(stepper_instance.values is Array, "Values is Array type")
TestHelperClass.assert_true(stepper_instance.display_names is Array, "Display names is Array type")
# Test that language data is loaded correctly
if stepper_instance.data_source == "language":
TestHelper.assert_true(stepper_instance.values.size() > 0, "Language values loaded")
TestHelper.assert_true(
TestHelperClass.assert_true(stepper_instance.values.size() > 0, "Language values loaded")
TestHelperClass.assert_true(
stepper_instance.display_names.size() > 0, "Language display names loaded"
)
TestHelper.assert_equal(
TestHelperClass.assert_equal(
stepper_instance.values.size(),
stepper_instance.display_names.size(),
"Values and display names arrays have same size"
@@ -150,7 +150,7 @@ func test_data_source_loading():
var current_lang = root.get_node("SettingsManager").get_setting("language")
var expected_index = stepper_instance.values.find(current_lang)
if expected_index >= 0:
TestHelper.assert_equal(
TestHelperClass.assert_equal(
expected_index,
stepper_instance.current_index,
"Current language index set correctly"
@@ -162,8 +162,8 @@ func test_data_source_loading():
test_viewport.add_child(resolution_stepper)
await process_frame
TestHelper.assert_true(resolution_stepper.values.size() > 0, "Resolution values loaded")
TestHelper.assert_contains(
TestHelperClass.assert_true(resolution_stepper.values.size() > 0, "Resolution values loaded")
TestHelperClass.assert_contains(
resolution_stepper.values, "1920x1080", "Resolution data contains expected value"
)
@@ -175,35 +175,35 @@ func test_data_source_loading():
test_viewport.add_child(difficulty_stepper)
await process_frame
TestHelper.assert_true(difficulty_stepper.values.size() > 0, "Difficulty values loaded")
TestHelper.assert_contains(
TestHelperClass.assert_true(difficulty_stepper.values.size() > 0, "Difficulty values loaded")
TestHelperClass.assert_contains(
difficulty_stepper.values, "normal", "Difficulty data contains expected value"
)
TestHelper.assert_equal(1, difficulty_stepper.current_index, "Difficulty defaults to normal")
TestHelperClass.assert_equal(1, difficulty_stepper.current_index, "Difficulty defaults to normal")
difficulty_stepper.queue_free()
func test_value_navigation():
TestHelper.print_step("Value Navigation")
TestHelperClass.print_step("Value Navigation")
if not stepper_instance:
return
# Store original state
var original_index = stepper_instance.current_index
var original_value = stepper_instance.get_current_value()
var _original_value = stepper_instance.get_current_value()
# Test forward navigation
var initial_value = stepper_instance.get_current_value()
stepper_instance.change_value(1)
var next_value = stepper_instance.get_current_value()
TestHelper.assert_not_equal(initial_value, next_value, "Forward navigation changes value")
TestHelperClass.assert_not_equal(initial_value, next_value, "Forward navigation changes value")
# Test backward navigation
stepper_instance.change_value(-1)
var back_value = stepper_instance.get_current_value()
TestHelper.assert_equal(
TestHelperClass.assert_equal(
initial_value, back_value, "Backward navigation returns to original value"
)
@@ -211,14 +211,14 @@ func test_value_navigation():
var max_index = stepper_instance.values.size() - 1
stepper_instance.current_index = max_index
stepper_instance.change_value(1)
TestHelper.assert_equal(
TestHelperClass.assert_equal(
0, stepper_instance.current_index, "Forward navigation wraps to beginning"
)
# Test wrap-around backward
stepper_instance.current_index = 0
stepper_instance.change_value(-1)
TestHelper.assert_equal(
TestHelperClass.assert_equal(
max_index, stepper_instance.current_index, "Backward navigation wraps to end"
)
@@ -228,7 +228,7 @@ func test_value_navigation():
func test_custom_values():
TestHelper.print_step("Custom Values")
TestHelperClass.print_step("Custom Values")
if not stepper_instance:
return
@@ -242,10 +242,10 @@ func test_custom_values():
var custom_values = ["apple", "banana", "cherry"]
stepper_instance.setup_custom_values(custom_values)
TestHelper.assert_equal(3, stepper_instance.values.size(), "Custom values set correctly")
TestHelper.assert_equal("apple", stepper_instance.values[0], "First custom value correct")
TestHelper.assert_equal(0, stepper_instance.current_index, "Index reset to 0 for custom values")
TestHelper.assert_equal(
TestHelperClass.assert_equal(3, stepper_instance.values.size(), "Custom values set correctly")
TestHelperClass.assert_equal("apple", stepper_instance.values[0], "First custom value correct")
TestHelperClass.assert_equal(0, stepper_instance.current_index, "Index reset to 0 for custom values")
TestHelperClass.assert_equal(
"apple", stepper_instance.get_current_value(), "Current value matches first custom value"
)
@@ -253,31 +253,31 @@ func test_custom_values():
var custom_display_names = ["Red Apple", "Yellow Banana", "Red Cherry"]
stepper_instance.setup_custom_values(custom_values, custom_display_names)
TestHelper.assert_equal(
TestHelperClass.assert_equal(
3, stepper_instance.display_names.size(), "Custom display names set correctly"
)
TestHelper.assert_equal(
TestHelperClass.assert_equal(
"Red Apple", stepper_instance.display_names[0], "First display name correct"
)
# Test navigation with custom values
stepper_instance.change_value(1)
TestHelper.assert_equal(
TestHelperClass.assert_equal(
"banana", stepper_instance.get_current_value(), "Navigation works with custom values"
)
# Test set_current_value
stepper_instance.set_current_value("cherry")
TestHelper.assert_equal(
TestHelperClass.assert_equal(
"cherry", stepper_instance.get_current_value(), "set_current_value works correctly"
)
TestHelper.assert_equal(
TestHelperClass.assert_equal(
2, stepper_instance.current_index, "Index updated correctly by set_current_value"
)
# Test invalid value
stepper_instance.set_current_value("grape")
TestHelper.assert_equal(
TestHelperClass.assert_equal(
"cherry", stepper_instance.get_current_value(), "Invalid value doesn't change current value"
)
@@ -289,7 +289,7 @@ func test_custom_values():
func test_input_handling():
TestHelper.print_step("Input Handling")
TestHelperClass.print_step("Input Handling")
if not stepper_instance:
return
@@ -299,15 +299,15 @@ func test_input_handling():
# Test left input action
var left_handled = stepper_instance.handle_input_action("move_left")
TestHelper.assert_true(left_handled, "Left input action handled")
TestHelper.assert_not_equal(
TestHelperClass.assert_true(left_handled, "Left input action handled")
TestHelperClass.assert_not_equal(
original_value, stepper_instance.get_current_value(), "Left action changes value"
)
# Test right input action
var right_handled = stepper_instance.handle_input_action("move_right")
TestHelper.assert_true(right_handled, "Right input action handled")
TestHelper.assert_equal(
TestHelperClass.assert_true(right_handled, "Right input action handled")
TestHelperClass.assert_equal(
original_value,
stepper_instance.get_current_value(),
"Right action returns to original value"
@@ -315,20 +315,20 @@ func test_input_handling():
# Test invalid input action
var invalid_handled = stepper_instance.handle_input_action("invalid_action")
TestHelper.assert_false(invalid_handled, "Invalid input action not handled")
TestHelperClass.assert_false(invalid_handled, "Invalid input action not handled")
# Test button press simulation
if stepper_instance.left_button:
var before_left = stepper_instance.get_current_value()
stepper_instance._on_left_button_pressed()
TestHelper.assert_not_equal(
TestHelperClass.assert_not_equal(
before_left, stepper_instance.get_current_value(), "Left button press changes value"
)
if stepper_instance.right_button:
var before_right = stepper_instance.get_current_value()
var _before_right = stepper_instance.get_current_value()
stepper_instance._on_right_button_pressed()
TestHelper.assert_equal(
TestHelperClass.assert_equal(
original_value,
stepper_instance.get_current_value(),
"Right button press returns to original"
@@ -336,7 +336,7 @@ func test_input_handling():
func test_visual_feedback():
TestHelper.print_step("Visual Feedback")
TestHelperClass.print_step("Visual Feedback")
if not stepper_instance:
return
@@ -347,30 +347,30 @@ func test_visual_feedback():
# Test highlighting
stepper_instance.set_highlighted(true)
TestHelper.assert_true(stepper_instance.is_highlighted, "Highlighted state set correctly")
TestHelper.assert_true(
TestHelperClass.assert_true(stepper_instance.is_highlighted, "Highlighted state set correctly")
TestHelperClass.assert_true(
stepper_instance.scale.x > original_scale.x, "Scale increased when highlighted"
)
# Test unhighlighting
stepper_instance.set_highlighted(false)
TestHelper.assert_false(stepper_instance.is_highlighted, "Highlighted state cleared correctly")
TestHelper.assert_equal(
TestHelperClass.assert_false(stepper_instance.is_highlighted, "Highlighted state cleared correctly")
TestHelperClass.assert_equal(
original_scale, stepper_instance.scale, "Scale restored when unhighlighted"
)
TestHelper.assert_equal(
TestHelperClass.assert_equal(
original_modulate, stepper_instance.modulate, "Modulate restored when unhighlighted"
)
# Test display update
if stepper_instance.value_display:
var current_text = stepper_instance.value_display.text
TestHelper.assert_true(current_text.length() > 0, "Value display has text content")
TestHelper.assert_not_equal("N/A", current_text, "Value display shows valid content")
TestHelperClass.assert_true(current_text.length() > 0, "Value display has text content")
TestHelperClass.assert_not_equal("N/A", current_text, "Value display shows valid content")
func test_settings_integration():
TestHelper.print_step("Settings Integration")
TestHelperClass.print_step("Settings Integration")
if not stepper_instance or stepper_instance.data_source != "language":
return
@@ -394,14 +394,14 @@ func test_settings_integration():
# Verify setting was updated
var updated_lang = root.get_node("SettingsManager").get_setting("language")
TestHelper.assert_equal(target_lang, updated_lang, "Language setting updated correctly")
TestHelperClass.assert_equal(target_lang, updated_lang, "Language setting updated correctly")
# Restore original language
root.get_node("SettingsManager").set_setting("language", original_lang)
func test_boundary_conditions():
TestHelper.print_step("Boundary Conditions")
TestHelperClass.print_step("Boundary Conditions")
if not stepper_instance:
return
@@ -412,13 +412,13 @@ func test_boundary_conditions():
test_viewport.add_child(empty_stepper)
await process_frame
TestHelper.assert_equal(
TestHelperClass.assert_equal(
"", empty_stepper.get_current_value(), "Empty values array returns empty string"
)
# Test change_value with empty array
empty_stepper.change_value(1) # Should not crash
TestHelper.assert_true(true, "change_value handles empty array gracefully")
TestHelperClass.assert_true(true, "change_value handles empty array gracefully")
empty_stepper.queue_free()
@@ -427,14 +427,14 @@ func test_boundary_conditions():
# Test negative index handling
stepper_instance.current_index = -1
stepper_instance._update_display()
TestHelper.assert_equal(
TestHelperClass.assert_equal(
"N/A", stepper_instance.value_display.text, "Negative index shows N/A"
)
# Test out-of-bounds index handling
stepper_instance.current_index = stepper_instance.values.size()
stepper_instance._update_display()
TestHelper.assert_equal(
TestHelperClass.assert_equal(
"N/A", stepper_instance.value_display.text, "Out-of-bounds index shows N/A"
)
@@ -444,7 +444,7 @@ func test_boundary_conditions():
func test_error_handling():
TestHelper.print_step("Error Handling")
TestHelperClass.print_step("Error Handling")
if not stepper_instance:
return
@@ -456,13 +456,13 @@ func test_error_handling():
await process_frame
# Should not crash and should handle gracefully
TestHelper.assert_true(true, "Unknown data source handled gracefully")
TestHelperClass.assert_true(true, "Unknown data source handled gracefully")
unknown_stepper.queue_free()
# Test get_control_name
var control_name = stepper_instance.get_control_name()
TestHelper.assert_true(control_name.ends_with("_stepper"), "Control name has correct suffix")
TestHelper.assert_true(
TestHelperClass.assert_true(control_name.ends_with("_stepper"), "Control name has correct suffix")
TestHelperClass.assert_true(
control_name.begins_with(stepper_instance.data_source), "Control name includes data source"
)
@@ -472,21 +472,21 @@ func test_error_handling():
stepper_instance.setup_custom_values(values_3, names_2)
# Should handle gracefully - display_names should be duplicated from values
TestHelper.assert_equal(3, stepper_instance.values.size(), "Values array size preserved")
TestHelper.assert_equal(
TestHelperClass.assert_equal(3, stepper_instance.values.size(), "Values array size preserved")
TestHelperClass.assert_equal(
2, stepper_instance.display_names.size(), "Display names size preserved as provided"
)
# Test navigation with mismatched arrays
stepper_instance.current_index = 2 # Index where display_names doesn't exist
stepper_instance._update_display()
TestHelper.assert_equal(
TestHelperClass.assert_equal(
"c", stepper_instance.value_display.text, "Falls back to value when display name missing"
)
func cleanup_tests():
TestHelper.print_step("Cleanup")
TestHelperClass.print_step("Cleanup")
# Restore original language setting
root.get_node("SettingsManager").set_setting("language", original_language)
@@ -502,4 +502,4 @@ func cleanup_tests():
# Wait for cleanup
await process_frame
TestHelper.assert_true(true, "Test cleanup completed")
TestHelperClass.assert_true(true, "Test cleanup completed")