Sha256: cccb9412df4a28d61a50a8164b666b0df6c505b3b39733731d5c2cf3772a2b9d

Contents?: true

Size: 676 Bytes

Versions: 5

Compression:

Stored size: 676 Bytes

Contents

# encoding: utf-8

require 'spec_helper'

describe AbstractType, '.included' do
  subject { object }

  let(:object) { described_class }
  let(:klass)  { Class.new       }

  it 'extends the klass' do
    klass.singleton_class.should_not include(described_class::ClassMethods)
    klass.send(:include, subject)
    klass.singleton_class.should include(described_class::ClassMethods)
  end

  it 'delegates to the ancestor' do
    included_ancestor = false
    subject.extend Module.new {
      define_method(:included) { |_| included_ancestor = true }
    }
    expect {
      klass.send(:include, subject)
    }.to change { included_ancestor }.from(false).to(true)
  end
end

Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
motion_abstract_type-0.0.6 spec/unit/abstract_type/class_methods/included_spec.rb
abstract_type-0.0.6 spec/unit/abstract_type/class_methods/included_spec.rb
abstract_type-0.0.5 spec/unit/abstract_type/class_methods/included_spec.rb
abstract_type-0.0.4 spec/unit/abstract_type/class_methods/included_spec.rb
abstract_type-0.0.3 spec/unit/abstract_type/class_methods/included_spec.rb