Sha256: d3cb2a233f84b0476cf0772c3520f429ab1abe63cb3bcb141c08506cdcb63a8d

Contents?: true

Size: 998 Bytes

Versions: 2

Compression:

Stored size: 998 Bytes

Contents

require 'rib/test'
require 'rib/test/multiline'
require 'rib/more/multiline_history'

describe Rib::MultilineHistory do
  paste :rib
  paste :setup_multiline

  def check str, err=nil
    shell.history.clear
    with_history(str, err)

    @shell = nil
    stub_output

    shell.history.clear
    shell.history << 'old history'
    with_history(str, err, 'old history')
  end

  def with_history str, err, *prefix
    lines = str.split("\n")
    lines[0...-1].inject([]){ |result, line|
      input(line)
      shell.loop_once
      result << line

      expect(shell.history.to_a).eq prefix + result

      result
    }
    input_done(lines.last, err) do
      shell.eval_binding.eval(str)
    end

    history = if lines.size == 1
                lines.first
              else
                "\n#{lines.join("\n")}"
              end

    expect(shell.history.to_a).eq prefix + [history]
  end

  test_for Rib::History, Rib::Multiline, Rib::MultilineHistory do
    paste :multiline
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rib-1.5.4 test/more/test_multiline_history.rb
rib-1.5.3 test/more/test_multiline_history.rb