Rewrite with_history test helper to be more robust
Write mock history to a temp file and load it directly with `fc -R` instead of running each command individually to build up the history.
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
require 'pry'
|
||||
require 'rspec/wait'
|
||||
require 'terminal_session'
|
||||
require 'tempfile'
|
||||
|
||||
RSpec.shared_context 'terminal session' do
|
||||
let(:term_opts) { {} }
|
||||
@@ -21,18 +22,20 @@ RSpec.shared_context 'terminal session' do
|
||||
end
|
||||
|
||||
def with_history(*commands, &block)
|
||||
session.run_command('fc -p')
|
||||
Tempfile.create do |f|
|
||||
f.write(commands.map{|c| c.gsub("\n", "\\\n")}.join("\n"))
|
||||
f.flush
|
||||
|
||||
commands.each do |c|
|
||||
c.respond_to?(:call) ? c.call : session.run_command(c)
|
||||
session.run_command('fc -p')
|
||||
session.run_command("fc -R #{f.path}")
|
||||
|
||||
session.clear_screen
|
||||
|
||||
yield block
|
||||
|
||||
session.send_keys('C-c')
|
||||
session.run_command('fc -P')
|
||||
end
|
||||
|
||||
session.clear_screen
|
||||
|
||||
yield block
|
||||
|
||||
session.send_keys('C-c')
|
||||
session.run_command('fc -P')
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user