1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
extends GutTest
const Scene = preload('res://Scenes/Game/Input.tscn')
const GameInput = preload('res://Scripts/Game/Input.cs')
var _instance: GameInput = null
var _sender = InputSender.new(Input)
const _invalid_input = 'ThisIsNotAValidCommand!'
const _valid_input = 'look at door'
const _command_submitted = 'CommandSubmitted'
const _unknown_input_submitted = 'UnknownInputSubmitted'
func _get_input_node() -> LineEdit:
return _instance.get_node('%TextInput') as LineEdit
func _set_input_text(text):
var textInputNode = _get_input_node()
textInputNode.text = text
textInputNode.emit_signal('text_changed', textInputNode.text)
func before_each():
_instance = add_child_autofree(Scene.instance())
func after_each():
_sender.release_all()
_sender.clear()
func after_all():
assert_no_new_orphans()
func test_can_instantiate():
assert_not_null(_instance)
func test_has_CommandSubmitted_signal():
assert_has_signal(_instance, _command_submitted)
func test_has_UnknownInputSubmitted_signal():
assert_has_signal(_instance, _unknown_input_submitted)
func test_TextInput_has_focus_when_scene_is_instantiated():
assert_true(_get_input_node().has_focus())
func test_CommandSubmitted_signal_is_not_emitted_when_enter_is_pressed_without_text_in_TextInput():
watch_signals(_instance)
yield(UiHelpers.press_key(_sender, KEY_ENTER), 'idle')
assert_signal_not_emitted(_instance, _command_submitted)
func test_UknownInputSumbmitted_signal_is_not_emitted_when_enter_is_pressed_without_text_in_TextInput():
watch_signals(_instance)
yield(UiHelpers.press_key(_sender, KEY_ENTER), 'idle')
assert_signal_not_emitted(_instance, _unknown_input_submitted)
func test_CommandSubmitted_signal_is_emitted_when_enter_is_pressed_with_a_valid_command_in_TextInput():
watch_signals(_instance)
_set_input_text(_valid_input)
yield(UiHelpers.press_key(_sender, KEY_ENTER), 'idle')
assert_signal_emitted(_instance, _command_submitted)
func test_UnknownInputSubmitted_signal_is_not_emitted_when_enter_is_pressed_with_an_invalid_command_in_TextInput():
watch_signals(_instance)
_set_input_text(_valid_input)
yield(UiHelpers.press_key(_sender, KEY_ENTER), 'idle')
assert_signal_not_emitted(_instance, _unknown_input_submitted)
func test_CommandSubmitted_signal_is_not_emitted_when_enter_is_pressed_with_an_invalid_command_in_TextInput():
watch_signals(_instance)
_set_input_text(_invalid_input)
yield(UiHelpers.press_key(_sender, KEY_ENTER), 'idle')
assert_signal_not_emitted(_instance, _command_submitted)
func test_UnknownInputSubmitted_signal_is_emitted_when_enter_is_pressed_with_a_valid_command_in_TextInput():
watch_signals(_instance)
_set_input_text(_invalid_input)
yield(UiHelpers.press_key(_sender, KEY_ENTER), 'idle')
assert_signal_emitted(_instance, _unknown_input_submitted)
func test_TextInput_is_empty_after_submitting_a_valid_command():
_set_input_text(_valid_input)
yield(UiHelpers.press_key(_sender, KEY_ENTER), 'idle')
assert_true(_get_input_node().text.empty())
func test_TextInput_is_empty_after_submitting_an_invalid_command():
_set_input_text(_invalid_input)
yield(UiHelpers.press_key(_sender, KEY_ENTER), 'idle')
assert_true(_get_input_node().text.empty())
|