瀏覽代碼

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.
pull/530/head
Eric Freese 4 年之前
父節點
當前提交
e715ffb1ae
共有 2 個檔案被更改,包括 12 行新增14 行删除
  1. +1
    -6
      spec/multi_line_spec.rb
  2. +11
    -8
      spec/spec_helper.rb

+ 1
- 6
spec/multi_line_spec.rb 查看文件

@ -1,11 +1,6 @@
describe 'a multi-line suggestion' do
it 'should be displayed on multiple lines' do
with_history(-> {
session.send_string('echo "')
session.send_keys('enter')
session.send_string('"')
session.send_keys('enter')
}) do
with_history("echo \"\n\"") do
session.send_keys('e')
wait_for { session.content }.to eq("echo \"\n\"")
end

+ 11
- 8
spec/spec_helper.rb 查看文件

@ -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

Loading…
取消
儲存