Sha256: cd6cd6c85fef035c1942ab405070fe0bf68f07276fc7bef1d693f66ec1956d9b

Contents?: true

Size: 1.4 KB

Versions: 14

Compression:

Stored size: 1.4 KB

Contents

require 'spec_helper'

describe 'subclassing with multiple state machines' do

  it 'should have the parent states' do
    SuperClassMultiple.aasm(:left).states.each do |state|
      expect(SubClassWithMoreStatesMultiple.aasm(:left).states).to include(state)
    end
    expect(SubClassMultiple.aasm(:left).states).to eq(SuperClassMultiple.aasm(:left).states)

    SuperClassMultiple.aasm(:right).states.each do |state|
      expect(SubClassWithMoreStatesMultiple.aasm(:right).states).to include(state)
    end
    expect(SubClassMultiple.aasm(:right).states).to eq(SuperClassMultiple.aasm(:right).states)
  end

  it 'should not add the child states to the parent machine' do
    expect(SuperClassMultiple.aasm(:left).states).not_to include(:foo)
    expect(SuperClassMultiple.aasm(:right).states).not_to include(:archived)
  end

  it "should have the same events as its parent" do
    expect(SubClassMultiple.aasm(:left).events).to eq(SuperClassMultiple.aasm(:left).events)
    expect(SubClassMultiple.aasm(:right).events).to eq(SuperClassMultiple.aasm(:right).events)
  end

  it 'should know how to respond to question methods' do
    expect(SubClassMultiple.new.may_foo?).to be_truthy
    expect(SubClassMultiple.new.may_close?).to be_truthy
  end

  it 'should not break if I call methods from super class' do
    son = SubClassMultiple.new
    son.update_state
    expect(son.aasm(:left).current_state).to eq(:ended)
  end

end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
aasm-4.11.1 spec/unit/subclassing_multiple_spec.rb
aasm-4.11.0 spec/unit/subclassing_multiple_spec.rb
aasm-4.10.1 spec/unit/subclassing_multiple_spec.rb
aasm-4.10.0 spec/unit/subclassing_multiple_spec.rb
aasm-4.9.0 spec/unit/subclassing_multiple_spec.rb
aasm-4.8.0 spec/unit/subclassing_multiple_spec.rb
aasm-4.7.0 spec/unit/subclassing_multiple_spec.rb
aasm-4.6.0 spec/unit/subclassing_multiple_spec.rb
aasm-4.5.2 spec/unit/subclassing_multiple_spec.rb
aasm-4.5.1 spec/unit/subclassing_multiple_spec.rb
aasm-4.5.0 spec/unit/subclassing_multiple_spec.rb
aasm-4.4.1 spec/unit/subclassing_multiple_spec.rb
aasm-4.4.0 spec/unit/subclassing_multiple_spec.rb
aasm-4.3.0 spec/unit/subclassing_multiple_spec.rb