summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2025-02-09 13:37:22 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2025-02-09 13:37:22 +0900
commit1be1991299b6a5d9d8407b8c9b84f8da1da3c15a (patch)
tree304c0515a6f8c70660ae933537c500a07748bfd5 /test
parent67dd7e1923f8084de1064bf54659100626c1e0ef (diff)
downloadfzf-1be1991299b6a5d9d8407b8c9b84f8da1da3c15a.tar.gz
Add exclude-current action
https://github.com/junegunn/fzf/pull/4231#issuecomment-2646063208
Diffstat (limited to 'test')
-rw-r--r--test/test_core.rb81
1 files changed, 69 insertions, 12 deletions
diff --git a/test/test_core.rb b/test/test_core.rb
index 4eee51b2..231b5950 100644
--- a/test/test_core.rb
+++ b/test/test_core.rb
@@ -1669,23 +1669,80 @@ class TestCore < TestInteractive
def test_exclude
tmux.send_keys %(seq 1000 | #{FZF} --multi --bind 'a:exclude,b:reload(seq 1000),c:reload-sync(seq 1000)'), :Enter
- tmux.until { |lines| assert_equal 1000, lines.match_count }
- tmux.until { |lines| assert_includes lines, '> 1' }
+ tmux.until do |lines|
+ assert_equal 1000, lines.match_count
+ assert_includes lines, '> 1'
+ end
tmux.send_keys :a
- tmux.until { |lines| assert_includes lines, '> 2' }
- tmux.until { |lines| assert_equal 999, lines.match_count }
+ tmux.until do |lines|
+ assert_includes lines, '> 2'
+ assert_equal 999, lines.match_count
+ end
tmux.send_keys :Up, :BTab, :BTab, :BTab, :a
- tmux.until { |lines| assert_equal 996, lines.match_count }
- tmux.until { |lines| assert_includes lines, '> 9' }
+ tmux.until do |lines|
+ assert_equal 996, lines.match_count
+ assert_includes lines, '> 9'
+ end
tmux.send_keys :b
- tmux.until { |lines| assert_equal 1000, lines.match_count }
- tmux.until { |lines| assert_includes lines, '> 5' }
+ tmux.until do |lines|
+ assert_equal 1000, lines.match_count
+ assert_includes lines, '> 5'
+ end
tmux.send_keys :Tab, :Tab, :Tab, :a
- tmux.until { |lines| assert_equal 997, lines.match_count }
- tmux.until { |lines| assert_includes lines, '> 2' }
+ tmux.until do |lines|
+ assert_equal 997, lines.match_count
+ assert_includes lines, '> 2'
+ end
tmux.send_keys :c
- tmux.until { |lines| assert_equal 1000, lines.match_count }
- tmux.until { |lines| assert_includes lines, '> 2' }
+ tmux.until do |lines|
+ assert_equal 1000, lines.match_count
+ assert_includes lines, '> 2'
+ end
+
+ # TODO: We should also check the behavior of 'exclude' during reloads
+ end
+
+ def test_exclude_current
+ tmux.send_keys %(seq 1000 | #{FZF} --multi --bind 'a:exclude-current,b:reload(seq 1000),c:reload-sync(seq 1000)'), :Enter
+
+ tmux.until do |lines|
+ assert_equal 1000, lines.match_count
+ assert_includes lines, '> 1'
+ end
+ tmux.send_keys :a
+ tmux.until do |lines|
+ assert_includes lines, '> 2'
+ assert_equal 999, lines.match_count
+ end
+ tmux.send_keys :Up, :BTab, :BTab, :BTab, :a
+ tmux.until do |lines|
+ assert_equal 998, lines.match_count
+ assert_equal 3, lines.select_count
+ assert_includes lines, '> 7'
+ end
+ tmux.send_keys :b
+ tmux.until do |lines|
+ assert_equal 1000, lines.match_count
+ assert_equal 0, lines.select_count
+ assert_includes lines, '> 5'
+ end
+ tmux.send_keys :Tab, :Tab, :Tab, :a
+ tmux.until do |lines|
+ assert_equal 999, lines.match_count
+ assert_equal 3, lines.select_count
+ assert_includes lines, '>>3'
+ end
+ tmux.send_keys :a
+ tmux.until do |lines|
+ assert_equal 998, lines.match_count
+ assert_equal 2, lines.select_count
+ assert_includes lines, '>>4'
+ end
+ tmux.send_keys :c
+ tmux.until do |lines|
+ assert_equal 1000, lines.match_count
+ assert_includes lines, '> 2'
+ end
# TODO: We should also check the behavior of 'exclude' during reloads
end