diff .zfun/zsh-autosuggestions/spec/spec_helper.rb @ 467:e1ce8897030d

zsh: import df6f6f9ff41 of zsh-autosuggestions
author Augie Fackler <raf@durin42.com>
date Mon, 03 Dec 2018 22:37:29 -0500
parents
children
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/.zfun/zsh-autosuggestions/spec/spec_helper.rb
@@ -0,0 +1,52 @@
+require 'pry'
+require 'rspec/wait'
+require 'terminal_session'
+
+RSpec.shared_context 'terminal session' do
+  let(:term_opts) { {} }
+  let(:session) { TerminalSession.new(term_opts) }
+  let(:before_sourcing) { -> {} }
+  let(:after_sourcing) { -> {} }
+  let(:options) { [] }
+
+  around do |example|
+    before_sourcing.call
+    session.run_command(options.join('; '))
+    session.run_command('source zsh-autosuggestions.zsh')
+    after_sourcing.call
+    session.clear_screen
+
+    example.run
+
+    session.destroy
+  end
+
+  def with_history(*commands, &block)
+    session.run_command('fc -p')
+
+    commands.each do |c|
+      c.respond_to?(:call) ? c.call : session.run_command(c)
+    end
+
+    session.clear_screen
+
+    yield block
+
+    session.send_keys('C-c')
+    session.run_command('fc -P')
+  end
+end
+
+RSpec.configure do |config|
+  config.expect_with :rspec do |expectations|
+    expectations.include_chain_clauses_in_custom_matcher_descriptions = true
+  end
+
+  config.mock_with :rspec do |mocks|
+    mocks.verify_partial_doubles = true
+  end
+
+  config.wait_timeout = 2
+
+  config.include_context 'terminal session'
+end