extends GutTest const Scene = preload('res://Scenes/InputContainer.tscn') const InputContainer = preload('res://Scripts/InputContainer.cs') var _instance: InputContainer = null var _sender = InputSender.new(Input) const _test_data = 'This is some test data' const _input_submitted = 'InputSubmitted' func _set_input_text(text): _instance.InputField.text = text _instance.InputField.emit_signal('text_changed', _instance.InputField.text) func before_each(): _instance = add_child_autofree(Scene.instance()) yield(yield_frames(1), YIELD) func after_each(): _sender.release_all() _sender.clear() func test_can_instantiate(): assert_not_null(_instance) func test_has_InputSubmitted_signal(): assert_has_signal(_instance, _input_submitted) func test_has_InputField(): assert_not_null(_instance.InputField) func test_InputField_has_focus_when_scene_is_instantiated(): assert_true(_instance.InputField.has_focus()) func test_InputSubmitted_signal_is_not_emitted_when_enter_is_pressed_without_text_in_InputField(): watch_signals(_instance) yield(UiHelpers.press_key(_sender, KEY_ENTER), 'idle') assert_signal_not_emitted(_instance, _input_submitted) func test_InputSubmitted_signal_is_emitted_when_enter_is_pressed_with_text_in_InputField(): watch_signals(_instance) _set_input_text(_test_data) yield(UiHelpers.press_key(_sender, KEY_ENTER), 'idle') assert_signal_emitted(_instance, _input_submitted) func test_InputField_is_empty_after_text_is_submitted(): _set_input_text(_test_data) yield(UiHelpers.press_key(_sender, KEY_ENTER), 'idle') assert_eq(_instance.InputField.text, '') func test_has_SubmitButton(): assert_not_null(_instance.SubmitButton) func test_SubmitButton_is_disable_after_scene_was_instantiated(): assert_true(_instance.SubmitButton.disabled) func test_SubmitButton_is_disabled_when_InputField_is_set_to_empty(): _set_input_text('') assert_true(_instance.SubmitButton.disabled) func test_SubmitButton_is_enabled_when_InputField_is_set_to_some_text(): _set_input_text(_test_data) assert_false(_instance.SubmitButton.disabled) func test_InputSubmitted_signal_is_not_emitted_when_SubmitButton_is_clicked_without_text_in_InputField(): watch_signals(_instance) _set_input_text('') yield(UiHelpers.click_control(_sender, _instance.SubmitButton), 'idle') assert_signal_not_emitted(_instance, _input_submitted) func test_InputSubmitted_signal_is_emitted_when_SubmitButton_is_clicked_with_text_in_InputField(): watch_signals(_instance) _set_input_text(_test_data) yield(UiHelpers.click_control(_sender, _instance.SubmitButton), 'idle') assert_signal_emitted(_instance, _input_submitted) func test_InputField_is_empty_after_text_is_submitted_via_SubmitButton(): _set_input_text(_test_data) yield(UiHelpers.click_control(_sender, _instance.SubmitButton), 'idle') assert_eq(_instance.InputField.text, '')