test/unit/version_test.rb in paper_trail-2.7.2 vs test/unit/version_test.rb in paper_trail-3.0.0.beta1

- old
+ new

@@ -1,57 +1,74 @@ require 'test_helper' -class VersionTest < ActiveSupport::TestCase - setup { +class PaperTrail::VersionTest < ActiveSupport::TestCase + setup do change_schema - @article = Animal.create - assert Version.creates.present? - } + @animal = Animal.create + assert PaperTrail::Version.creates.present? + end - context "Version.creates" do + context "PaperTrail::Version.creates" do should "return only create events" do - Version.creates.each do |version| + PaperTrail::Version.creates.each do |version| assert_equal "create", version.event end end end - context "Version.updates" do + context "PaperTrail::Version.updates" do setup { - @article.update_attributes(:name => 'Animal') - assert Version.updates.present? + @animal.update_attributes(:name => 'Animal') + assert PaperTrail::Version.updates.present? } should "return only update events" do - Version.updates.each do |version| + PaperTrail::Version.updates.each do |version| assert_equal "update", version.event end end end - context "Version.destroys" do + context "PaperTrail::Version.destroys" do setup { - @article.destroy - assert Version.destroys.present? + @animal.destroy + assert PaperTrail::Version.destroys.present? } should "return only destroy events" do - Version.destroys.each do |version| + PaperTrail::Version.destroys.each do |version| assert_equal "destroy", version.event end end end - context "Version.not_creates" do + context "PaperTrail::Version.not_creates" do setup { - @article.update_attributes(:name => 'Animal') - @article.destroy - assert Version.not_creates.present? + @animal.update_attributes(:name => 'Animal') + @animal.destroy + assert PaperTrail::Version.not_creates.present? } should "return all items except create events" do - Version.not_creates.each do |version| + PaperTrail::Version.not_creates.each do |version| assert_not_equal "create", version.event end + end + end +end + +class VersionTest < ActiveSupport::TestCase + # without this, it sometimes picks up the changed schema from the previous test and gets confused + setup { PaperTrail::Version.reset_column_information } + + context "Version class" do + should "be a subclass of the `PaperTrail::Version` class" do + assert Version < PaperTrail::Version + end + + should "act like a `PaperTrail::Version` while warning the user" do + widget = Widget.create! :name => Faker::Name.name + widget.update_attributes! :name => Faker::Name.name + assert_equal Version.last.reify.name, widget.versions.last.reify.name end end end