Browse code

Add ruby based integration test

John Hawthorn authored on 28/12/2016 07:38:02
Showing 4 changed files

... ...
@@ -2,3 +2,4 @@ fzy
2 2
 fzytest
3 3
 *.o
4 4
 config.h
5
+test/integration/vendor/bundle
5 6
new file mode 100644
... ...
@@ -0,0 +1,3 @@
1
+source 'https://rubygems.org'
2
+gem 'ttytest'
3
+gem 'minitest'
0 4
new file mode 100644
... ...
@@ -0,0 +1,15 @@
1
+GEM
2
+  remote: https://rubygems.org/
3
+  specs:
4
+    minitest (5.10.1)
5
+    ttytest (0.1.0)
6
+
7
+PLATFORMS
8
+  ruby
9
+
10
+DEPENDENCIES
11
+  minitest
12
+  ttytest
13
+
14
+BUNDLED WITH
15
+   1.13.6
0 16
new file mode 100644
... ...
@@ -0,0 +1,65 @@
1
+require 'minitest'
2
+require 'minitest/autorun'
3
+require 'ttytest'
4
+
5
+class FzyTest < Minitest::Test
6
+  FZY_PATH = File.expand_path('../../../fzy', __FILE__)
7
+
8
+  def test_empty_list
9
+    @tty = TTYtest.driver.new_terminal(%{echo placeholder;echo -n "" | fzy})
10
+    @tty.assert_row(0, 'placeholder')
11
+    @tty.assert_row(1, '>')
12
+    @tty.assert_row(2, '')
13
+
14
+    @tty.send_keys('t')
15
+    @tty.assert_row(0, 'placeholder')
16
+    @tty.assert_row(1, '> t')
17
+    @tty.assert_row(2, '')
18
+
19
+    @tty.send_keys('z')
20
+    @tty.assert_row(0, 'placeholder')
21
+    @tty.assert_row(1, '> tz')
22
+    @tty.assert_row(2, '')
23
+  end
24
+
25
+  def test_one_item
26
+    @tty = TTYtest.driver.new_terminal(%{echo placeholder;echo -n "test" | fzy})
27
+    @tty.assert_row(0, 'placeholder')
28
+    @tty.assert_row(1, '>')
29
+    @tty.assert_row(2, 'test')
30
+    @tty.assert_row(3, '')
31
+
32
+    @tty.send_keys('t')
33
+    @tty.assert_row(0, 'placeholder')
34
+    @tty.assert_row(1, '> t')
35
+    @tty.assert_row(2, 'test')
36
+    @tty.assert_row(3, '')
37
+
38
+    @tty.send_keys('z')
39
+    @tty.assert_row(0, 'placeholder')
40
+    @tty.assert_row(1, '> tz')
41
+    @tty.assert_row(2, '')
42
+    @tty.assert_row(3, '')
43
+  end
44
+
45
+  def test_two_items
46
+    @tty = TTYtest.driver.new_terminal(%{echo placeholder;echo -n "test\nfoo" | fzy})
47
+    @tty.assert_row(0, 'placeholder')
48
+    @tty.assert_row(1, '>')
49
+    @tty.assert_row(2, 'test')
50
+    @tty.assert_row(3, 'foo')
51
+    @tty.assert_row(4, '')
52
+
53
+    @tty.send_keys('t')
54
+    @tty.assert_row(0, 'placeholder')
55
+    @tty.assert_row(1, '> t')
56
+    @tty.assert_row(2, 'test')
57
+    @tty.assert_row(3, '')
58
+
59
+    @tty.send_keys('z')
60
+    @tty.assert_row(0, 'placeholder')
61
+    @tty.assert_row(1, '> tz')
62
+    @tty.assert_row(2, '')
63
+    @tty.assert_row(3, '')
64
+  end
65
+end