zsh-autosuggestions/spec/spec_helper.rb

52 lines
1.1 KiB
Ruby
Raw Normal View History

2017-01-28 05:06:16 +08:00
require 'pry'
require 'rspec/wait'
require 'terminal_session'
2017-02-17 10:18:03 +08:00
RSpec.shared_context 'terminal session' do
let(:term_opts) { {} }
let(:session) { TerminalSession.new(term_opts) }
let(:before_sourcing) { -> {} }
let(:after_sourcing) { -> {} }
2017-02-17 10:18:03 +08:00
let(:options) { [] }
around do |example|
before_sourcing.call
session.run_command(['source zsh-autosuggestions.zsh', *options].join('; '))
after_sourcing.call
2017-02-17 10:18:03 +08:00
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
2017-02-17 10:18:03 +08:00
config.include_context 'terminal session'
end