describe 'a suggestion' do
  let(:term_opts) { { width: 200 } }
  let(:command) { "echo foobar" }

  around do |example|
    with_history(command) { example.run }
  end

  it 'is provided for any buffer length' do
    session.send_string(command[0...-1])
    wait_for { session.content }.to eq(command)
  end

  context 'when ZSH_AUTOSUGGEST_BUFFER_MIN_SIZE is specified' do
    let(:buffer_min_size) { 5 }
    let(:options) { ["ZSH_AUTOSUGGEST_BUFFER_MIN_SIZE=#{buffer_min_size}"] }

    it 'is provided when the buffer is longer than the specified length' do
      session.send_string(command[0...(buffer_min_size + 1)])
      wait_for { session.content }.to eq(command)
    end

    it 'is provided when the buffer is equal to the specified length' do
      session.send_string(command[0...(buffer_min_size)])
      wait_for { session.content }.to eq(command)
    end

    it 'is not provided when the buffer is shorter than the specified length' do
      session.send_string(command[0...(buffer_min_size - 1)])
      wait_for { session.content }.to eq(command[0...(buffer_min_size - 1)])
    end
  end
end