From 1ccbde52bab8ef0ec3062e50781188a0d57018d2 Mon Sep 17 00:00:00 2001 From: John Hawthorn Date: Tue, 27 Dec 2016 23:38:02 -0800 Subject: Add ruby based integration test --- .gitignore | 1 + test/integration/Gemfile | 3 ++ test/integration/Gemfile.lock | 15 +++++++++ test/integration/integration_test.rb | 65 ++++++++++++++++++++++++++++++++++++ 4 files changed, 84 insertions(+) create mode 100644 test/integration/Gemfile create mode 100644 test/integration/Gemfile.lock create mode 100644 test/integration/integration_test.rb 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 -- cgit v1.2.3