summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--test/integration/Gemfile3
-rw-r--r--test/integration/Gemfile.lock15
-rw-r--r--test/integration/integration_test.rb65
4 files changed, 84 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index 0a47f55..9f5dca5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,4 @@ fzy
fzytest
*.o
config.h
+test/integration/vendor/bundle
diff --git a/test/integration/Gemfile b/test/integration/Gemfile
new file mode 100644
index 0000000..a4a59f6
--- /dev/null
+++ b/test/integration/Gemfile
@@ -0,0 +1,3 @@
+source 'https://rubygems.org'
+gem 'ttytest'
+gem 'minitest'
diff --git a/test/integration/Gemfile.lock b/test/integration/Gemfile.lock
new file mode 100644
index 0000000..0ad2eee
--- /dev/null
+++ b/test/integration/Gemfile.lock
@@ -0,0 +1,15 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ minitest (5.10.1)
+ ttytest (0.1.0)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ minitest
+ ttytest
+
+BUNDLED WITH
+ 1.13.6
diff --git a/test/integration/integration_test.rb b/test/integration/integration_test.rb
new file mode 100644
index 0000000..21ba0f5
--- /dev/null
+++ b/test/integration/integration_test.rb
@@ -0,0 +1,65 @@
+require 'minitest'
+require 'minitest/autorun'
+require 'ttytest'
+
+class FzyTest < Minitest::Test
+ FZY_PATH = File.expand_path('../../../fzy', __FILE__)
+
+ def test_empty_list
+ @tty = TTYtest.driver.new_terminal(%{echo placeholder;echo -n "" | fzy})
+ @tty.assert_row(0, 'placeholder')
+ @tty.assert_row(1, '>')
+ @tty.assert_row(2, '')
+
+ @tty.send_keys('t')
+ @tty.assert_row(0, 'placeholder')
+ @tty.assert_row(1, '> t')
+ @tty.assert_row(2, '')
+
+ @tty.send_keys('z')
+ @tty.assert_row(0, 'placeholder')
+ @tty.assert_row(1, '> tz')
+ @tty.assert_row(2, '')
+ end
+
+ def test_one_item
+ @tty = TTYtest.driver.new_terminal(%{echo placeholder;echo -n "test" | fzy})
+ @tty.assert_row(0, 'placeholder')
+ @tty.assert_row(1, '>')
+ @tty.assert_row(2, 'test')
+ @tty.assert_row(3, '')
+
+ @tty.send_keys('t')
+ @tty.assert_row(0, 'placeholder')
+ @tty.assert_row(1, '> t')
+ @tty.assert_row(2, 'test')
+ @tty.assert_row(3, '')
+
+ @tty.send_keys('z')
+ @tty.assert_row(0, 'placeholder')
+ @tty.assert_row(1, '> tz')
+ @tty.assert_row(2, '')
+ @tty.assert_row(3, '')
+ end
+
+ def test_two_items
+ @tty = TTYtest.driver.new_terminal(%{echo placeholder;echo -n "test\nfoo" | fzy})
+ @tty.assert_row(0, 'placeholder')
+ @tty.assert_row(1, '>')
+ @tty.assert_row(2, 'test')
+ @tty.assert_row(3, 'foo')
+ @tty.assert_row(4, '')
+
+ @tty.send_keys('t')
+ @tty.assert_row(0, 'placeholder')
+ @tty.assert_row(1, '> t')
+ @tty.assert_row(2, 'test')
+ @tty.assert_row(3, '')
+
+ @tty.send_keys('z')
+ @tty.assert_row(0, 'placeholder')
+ @tty.assert_row(1, '> tz')
+ @tty.assert_row(2, '')
+ @tty.assert_row(3, '')
+ end
+end