2017-08-19 01:10:05 +08:00
|
|
|
require 'strategies/special_characters_helper'
|
|
|
|
|
2018-05-24 12:04:47 +08:00
|
|
|
describe 'the `match_prev_cmd` strategy' do
|
2017-02-17 10:18:03 +08:00
|
|
|
let(:options) { ['ZSH_AUTOSUGGEST_STRATEGY=match_prev_cmd'] }
|
|
|
|
|
2019-06-30 11:44:29 +08:00
|
|
|
let(:history) { [
|
|
|
|
'echo what',
|
|
|
|
'ls foo',
|
|
|
|
'echo what',
|
|
|
|
'ls bar',
|
|
|
|
'ls baz',
|
|
|
|
'echo what'
|
|
|
|
] }
|
|
|
|
|
2017-02-17 10:18:03 +08:00
|
|
|
it 'suggests the last matching history entry after the previous command' do
|
2019-06-30 11:44:29 +08:00
|
|
|
with_history(*history) do
|
2017-01-19 15:59:06 +08:00
|
|
|
session.send_string('ls')
|
|
|
|
wait_for { session.content }.to eq('ls bar')
|
|
|
|
end
|
|
|
|
end
|
2017-08-19 01:10:05 +08:00
|
|
|
|
2019-06-30 11:44:29 +08:00
|
|
|
context 'when ZSH_AUTOSUGGEST_HISTORY_IGNORE is set to a pattern' do
|
|
|
|
let(:options) { ['ZSH_AUTOSUGGEST_STRATEGY=match_prev_cmd', 'ZSH_AUTOSUGGEST_HISTORY_IGNORE="* bar"'] }
|
|
|
|
|
|
|
|
it 'does not make suggestions that match the pattern' do
|
|
|
|
with_history(*history) do
|
|
|
|
session.send_string('ls')
|
|
|
|
wait_for { session.content }.to eq('ls foo')
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2017-08-19 01:10:05 +08:00
|
|
|
include_examples 'special characters'
|
2017-01-19 15:59:06 +08:00
|
|
|
end
|