From 4b28d92e01517ef944e93523594920c8c3752e29 Mon Sep 17 00:00:00 2001 From: Eric Freese Date: Sat, 10 Nov 2018 13:56:31 -0700 Subject: [PATCH] Add `after_sourcing` hook for tests Is executed immediately after sourcing the plugin --- spec/options/strategy_spec.rb | 32 +++++++++++++++++++++----------- spec/spec_helper.rb | 2 ++ 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/spec/options/strategy_spec.rb b/spec/options/strategy_spec.rb index 378d01e..58562d0 100644 --- a/spec/options/strategy_spec.rb +++ b/spec/options/strategy_spec.rb @@ -3,7 +3,11 @@ describe 'a suggestion for a given prefix' do let(:foobar_strategy) { '_zsh_autosuggest_strategy_foobar() { [[ "foobar baz" = $1* ]] && suggestion="foobar baz" }' } let(:foobaz_strategy) { '_zsh_autosuggest_strategy_foobaz() { [[ "foobaz bar" = $1* ]] && suggestion="foobaz bar" }' } - let(:options) { [ history_strategy ] } + let(:after_sourcing) do + -> do + session.run_command(history_strategy) + end + end it 'by default is determined by calling the `history` strategy function' do session.send_string('h') @@ -11,11 +15,14 @@ describe 'a suggestion for a given prefix' do end context 'when ZSH_AUTOSUGGEST_STRATEGY is set to an array' do - let(:options) { [ - foobar_strategy, - foobaz_strategy, - 'ZSH_AUTOSUGGEST_STRATEGY=(foobar foobaz)' - ] } + let(:after_sourcing) do + -> do + session. + run_command(foobar_strategy). + run_command(foobaz_strategy). + run_command('ZSH_AUTOSUGGEST_STRATEGY=(foobar foobaz)') + end + end it 'is determined by the first strategy function to return a suggestion' do session.send_string('foo') @@ -27,11 +34,14 @@ describe 'a suggestion for a given prefix' do end context 'when ZSH_AUTOSUGGEST_STRATEGY is set to a string' do - let(:options) { [ - foobar_strategy, - foobaz_strategy, - 'ZSH_AUTOSUGGEST_STRATEGY="foobar foobaz"' - ] } + let(:after_sourcing) do + -> do + session. + run_command(foobar_strategy). + run_command(foobaz_strategy). + run_command('ZSH_AUTOSUGGEST_STRATEGY="foobar foobaz"') + end + end it 'is determined by the first strategy function to return a suggestion' do session.send_string('foo') diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 64115d2..bfcb706 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -6,12 +6,14 @@ 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((['source zsh-autosuggestions.zsh'] + options).join('; ')) + after_sourcing.call session.clear_screen example.run