Sha256: 3071adb157ecdab72c27bf3e9955740cef793fcb144de11d0f20969ee3a2abd2

Contents?: true

Size: 1.1 KB

Versions: 1

Compression:

Stored size: 1.1 KB

Contents

# encoding: utf-8

# ==============================================================================
# Examples for testing rules
# ==============================================================================

shared_context :rule do

  def nodes
    defined?(input) ? [input].flatten : []
  end

  def optimized
    defined?(output) ? [output].flatten : []
  end

  let(:rule) { described_class }

  subject { rule.new(*nodes).call.inspect }

end # shared context

shared_examples :skipping_nodes do

  include_context :rule

  it do
    is_expected.to eql(nodes.inspect), <<-REPORT.gsub(/.+\|/, "")
      |
      |#{rule}
      |
      |Input: #{nodes.inspect}
      |
      |Output:
      |  expected: #{nodes.inspect}
      |       got: #{subject}
    REPORT
  end

end # shared examples

shared_examples :optimizing_nodes do

  include_context :rule

  it do
    is_expected.to eql(optimized.inspect), <<-REPORT.gsub(/.+\|/, "")
      |
      |#{rule}
      |
      |Input: #{nodes.inspect}
      |
      |Output:
      |  expected: #{optimized.inspect}
      |       got: #{subject}
    REPORT
  end

end # shared examples

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
abstract_mapper-0.0.1 lib/rspec/rules.rb