mirror of
https://github.com/paper-trail-gem/paper_trail.git
synced 2022-11-09 11:33:19 -05:00
7295f65a3c
model_spec is far too long, let's break it up into specs for individual models in the dummy app. Extract spec/models/legacy_widget_spec.rb Extract spec/models/on/empty_array_spec.rb Extract spec/models/on/create_spec.rb Extract spec/models/on/update_spec.rb Extract spec/models/on/destroy_spec.rb Move an example to config_spec.rb Extract spec/models/translation_spec.rb Extract spec/models/article_spec.rb Move examples to document_spec.rb
40 lines
1.4 KiB
Ruby
40 lines
1.4 KiB
Ruby
require "spec_helper"
|
|
|
|
RSpec.describe LegacyWidget, type: :model, versioning: true do
|
|
describe "#custom_version" do
|
|
it "knows which version it came from" do
|
|
widget = described_class.create(name: "foo", version: 2)
|
|
%w[bar baz].each { |name| widget.update_attributes(name: name) }
|
|
version = widget.versions.last
|
|
reified = version.reify
|
|
expect(reified.custom_version).to(eq(version))
|
|
end
|
|
end
|
|
|
|
describe "#previous_version" do
|
|
it "return its previous self" do
|
|
widget = described_class.create(name: "foo", version: 2)
|
|
%w[bar baz].each { |name| widget.update_attributes(name: name) }
|
|
version = widget.versions.last
|
|
reified = version.reify
|
|
expect(reified.paper_trail.previous_version).to(eq(reified.versions[-2].reify))
|
|
end
|
|
end
|
|
|
|
describe "#update_attributes" do
|
|
it "does not create a PT version record because the updated column is ignored" do
|
|
described_class.create.update_attributes(version: 1)
|
|
expect(PaperTrail::Version.count).to(eq(1))
|
|
end
|
|
end
|
|
|
|
describe "#version" do
|
|
it "is a normal attribute and has nothing to do with PT" do
|
|
widget = described_class.create(name: "foo", version: 2)
|
|
expect(widget.versions.size).to(eq(1))
|
|
expect(widget.version).to(eq(2))
|
|
widget.update_attributes(version: 3)
|
|
expect(widget.version).to(eq(3))
|
|
end
|
|
end
|
|
end
|