|
|
@ -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) |
|
|
|
end |
|
|
|
session.run_command('fc -p') |
|
|
|
session.run_command("fc -R #{f.path}") |
|
|
|
|
|
|
|
session.clear_screen |
|
|
|
session.clear_screen |
|
|
|
|
|
|
|
yield block |
|
|
|
yield block |
|
|
|
|
|
|
|
session.send_keys('C-c') |
|
|
|
session.run_command('fc -P') |
|
|
|
session.send_keys('C-c') |
|
|
|
session.run_command('fc -P') |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|