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