Sha256: 9b00b27e749e1a662d247ca73098dcb544cf0eec1baad95dd4c42544b9590aa8

Contents?: true

Size: 716 Bytes

Versions: 2

Compression:

Stored size: 716 Bytes

Contents

# encoding: utf-8

require_relative "faceter"

describe "mapper definition" do

  include_context "Faceter"

  before do
    class MyMapper < Faceter::Mapper
      list do
        rename :foo, to: :baz
      end

      list do
        rename :bar, to: :qux
      end
    end
  end

  let(:mapper) { MyMapper.new }
  let(:input)  { [{ foo: :FOO, bar: :FOO }, { foo: :BAR, bar: :BAR }] }
  let(:output) { [{ baz: :FOO, qux: :FOO }, { baz: :BAR, qux: :BAR }] }

  it "works" do
    expect(mapper.tree.inspect)
      .to eql "<Root [<List [<Rename(keys: {:foo=>:baz, :bar=>:qux})>]>]>"
    expect(mapper.call input).to eql output
  end

  after { Object.send :remove_const, :MyMapper }

end # describe mapper definition

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
abstract_mapper-0.1.0 spec/integration/mapper_definition_spec.rb
abstract_mapper-0.0.2 spec/integration/mapper_definition_spec.rb