godot-xterm/test/test_terminal.gd
Leroy Hopson db3564f0cc
Setup tests
- Install Gut using gd-plug.
- Add some basic tests.
- Update workflow to run tests.
- Add test and gd-plug install/uninstall recipes to Justfile.
- Re-enable debug builds as these are used by editor when testing.
2024-02-18 14:06:25 +13:00

38 lines
896 B
GDScript

class_name TerminalTest extends GutTest
var terminal: Terminal
func before_each():
terminal = Terminal.new()
terminal.size = Vector2(400, 200)
add_child_autofree(terminal)
class TestBell:
extends TerminalTest
func test_bell() -> void:
watch_signals(terminal)
terminal.bell_cooldown = 0
terminal.write(char(7))
terminal.write(char(0x07))
terminal.write("\a")
terminal.write("\u0007")
terminal.write("'Ask not for whom the \a tolls; it tolls for thee' - John Donne")
assert_signal_emit_count(terminal, "bell", 5)
class TestCursorPos:
extends TerminalTest
func test_get_cursor_pos_initial():
assert_eq(terminal.get_cursor_pos(), Vector2.ZERO)
func test_get_cursor_pos_x():
terminal.write("_")
assert_eq(terminal.get_cursor_pos().x, 1)
func test_get_cursor_pos_y():
terminal.write("_".repeat(terminal.cols + 1))
assert_eq(terminal.get_cursor_pos().y, 1)