Sha256: 0b05ebed9c25240eb5162a71d68eea229cf1318e68609b45a02cee62386b7ab9

Contents?: true

Size: 1.15 KB

Versions: 1

Compression:

Stored size: 1.15 KB

Contents

require "spec_helper"

module Hexx
  describe Coercible do

    # ==========================================================================
    # Prepare environment
    # ==========================================================================

    before { class  TestModel; extend Coercible; end }
    before { module TestModule;  end }
    before { class  TestCoersion < Struct.new(:string); end }

    let(:test_model)    { TestModel   }
    let(:test_module)   { TestModule  }
    let(:test_coersion) { TestCoersion }

    after { Hexx.send :remove_const, :TestCoersion }
    after { Hexx.send :remove_const, :TestModule  }
    after { Hexx.send :remove_const, :TestModel   }

    # ==========================================================================
    # Run tests
    # ==========================================================================

    describe ".attr_coerced" do

      before  { test_model.send :attr_coerced, :name, type: test_coersion }
      subject { test_model.new }

      it "coerces an attribute with given type" do
        subject.name = "some name"
        expect(subject.name).to be_kind_of test_coersion
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
hexx-6.0.1 spec/hexx/coercible_spec.rb