37 lines
1.1 KiB
Ruby
37 lines
1.1 KiB
Ruby
require 'rails_helper'
|
|
|
|
describe Animal, :type => :model do
|
|
it { is_expected.to be_versioned }
|
|
|
|
describe "STI", :versioning => true do
|
|
it { expect(Animal.inheritance_column).to eq('species') }
|
|
|
|
describe "updates to the `inheritance_column`" do
|
|
subject { Cat.create!(:name => 'Leo') }
|
|
|
|
it "should be allowed" do
|
|
subject.update_attributes(:name => 'Spike', :species => 'Dog')
|
|
dog = Animal.find(subject.id)
|
|
expect(dog).to be_instance_of(Dog)
|
|
end
|
|
end
|
|
|
|
context 'with callback-methods' do
|
|
context 'when only has_paper_trail set in super class' do
|
|
let(:callback_cat) { Cat.create(:name => 'Markus') }
|
|
|
|
it 'trails all events' do
|
|
callback_cat.update_attributes(:name => 'Billie')
|
|
callback_cat.destroy
|
|
expect(callback_cat.versions.collect(&:event)).to eq %w(create update destroy)
|
|
end
|
|
|
|
it 'does not break reify' do
|
|
callback_cat.destroy
|
|
expect { callback_cat.versions.last.reify }.not_to raise_error
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|