test/traka_change_test.rb in traka-0.0.5 vs test/traka_change_test.rb in traka-0.0.6

- old
+ new

@@ -2,68 +2,77 @@ class TrakaChangeTest < ActiveSupport::TestCase def setup Traka::Change.destroy_all - Traka::Change.set_version!(1) + Traka::Change.set_version!(0) end test "TrakaChange has latest version" do - assert_equal Traka::Change.latest_version, 1 + assert_equal Traka::Change.latest_version, 0 end test "TrakaChange can publish new version" do - assert_equal Traka::Change.latest_version, 1 + assert_equal Traka::Change.latest_version, 0 Traka::Change.publish_new_version! - assert_equal Traka::Change.latest_version, 2 + assert_equal Traka::Change.latest_version, 1 end test "TrakaChange can list staged changes" do p = Product.create(:name => "Product A") c = Cheese.create(:name => "Cheese A") - assert_equal Traka::Change.staged_changes.count, 2 - assert_equal Traka::Change.staged_changes.first.klass, "Product" - assert_equal Traka::Change.staged_changes.last.klass, "Cheese" + Traka::Change.publish_new_version! + + p2 = Product.create(:name => "Product B") + c2 = Cheese.create(:name => "Cheese B") + + assert_equal Traka::Change.changes.count, 2 + assert_equal Traka::Change.changes.first.klass, "Product" + assert_equal Traka::Change.changes.last.klass, "Cheese" end test "TrakaChange can list changes from a particular version" do p = Product.create(:name => "Product A") c = Cheese.create(:name => "Cheese A") - assert_equal Traka::Change.staged_changes.count, 2 + assert_equal Traka::Change.changes.count, 2 Traka::Change.publish_new_version! p2 = Product.create(:name => "Product B") - assert_equal Traka::Change.staged_changes.count, 1 - assert_equal Traka::Change.staged_changes.first.klass, "Product" + Traka::Change.publish_new_version! - assert_equal Traka::Change.staged_changes(:version => 1).count, 3 - assert_equal Traka::Change.staged_changes(:version => 1).map(&:klass), ["Product", "Cheese", "Product"] - assert_equal Traka::Change.staged_changes(:version => 1).map(&:action_type), ["create", "create", "create"] + p3 = Product.create(:name => "Product C") + + assert_equal Traka::Change.changes.count, 1 + assert_equal Traka::Change.changes.first.klass, "Product" + + assert_equal Traka::Change.changes(:version => 1).count, 3 ## Product C is not returned because it hasn't been published. + assert_equal Traka::Change.changes(:version => 1).map(&:klass), ["Product", "Cheese", "Product"] + assert_equal Traka::Change.changes(:version => 1).map(&:action_type), ["create", "create", "create"] end test "TrakaChange can list changes for a particular version" do p = Product.create(:name => "Product A") c = Cheese.create(:name => "Cheese A") - assert_equal Traka::Change.staged_changes.count, 2 + assert_equal Traka::Change.changes.count, 2 Traka::Change.publish_new_version! p2 = Product.create(:name => "Product B") - assert_equal Traka::Change.staged_changes.count, 1 - assert_equal Traka::Change.staged_changes.first.klass, "Product" + assert_equal Traka::Change.changes.count, 1 + assert_equal Traka::Change.changes.first.klass, "Product" - assert_equal Traka::Change.staged_changes(:version => (2..2)).count, 2 - assert_equal Traka::Change.staged_changes(:version => (2..2)).map(&:klass), ["Product", "Cheese"] - assert_equal Traka::Change.staged_changes(:version => (2..2)).map(&:action_type), ["create", "create"] + assert_equal Traka::Change.changes(:version => (1..1)).count, 2 + assert_equal Traka::Change.changes(:version => (1..1)).map(&:klass), ["Product", "Cheese"] + assert_equal Traka::Change.changes(:version => (1..1)).map(&:action_type), ["create", "create"] end test "TrakaChange can list differing changes" do p = Product.create(:name => "Product A") c = Cheese.create(:name => "Cheese A") @@ -72,24 +81,24 @@ p.name = "New name" p.save c.destroy - assert_equal Traka::Change.staged_changes.count, 2 - assert_equal Traka::Change.staged_changes.map(&:klass), ["Product", "Cheese"] - assert_equal Traka::Change.staged_changes.map(&:action_type), ["update", "destroy"] + assert_equal Traka::Change.changes.count, 2 + assert_equal Traka::Change.changes.map(&:klass), ["Product", "Cheese"] + assert_equal Traka::Change.changes.map(&:action_type), ["update", "destroy"] end test "TrakaChange can filter out obsolete create->destroy actions" do p = Product.create(:name => "Product A") c = Cheese.create(:name => "Cheese A") p.destroy - assert_equal Traka::Change.staged_changes.count, 1 - assert_equal Traka::Change.staged_changes.map(&:klass), ["Cheese"] - assert_equal Traka::Change.staged_changes.map(&:action_type), ["create"] + assert_equal Traka::Change.changes.count, 1 + assert_equal Traka::Change.changes.map(&:klass), ["Cheese"] + assert_equal Traka::Change.changes.map(&:action_type), ["create"] end test "TrakaChange can filter out obsolete update->destroy actions" do p = Product.create(:name => "Product A") c = Cheese.create(:name => "Cheese A") @@ -101,13 +110,13 @@ c.name = "New name" c.save p.destroy - assert_equal Traka::Change.staged_changes.count, 1 - assert_equal Traka::Change.staged_changes.map(&:klass), ["Cheese"] - assert_equal Traka::Change.staged_changes.map(&:action_type), ["update"] + assert_equal Traka::Change.changes.count, 1 + assert_equal Traka::Change.changes.map(&:klass), ["Cheese"] + assert_equal Traka::Change.changes.map(&:action_type), ["update"] end test "TrakaChange can filter out obsolete create->update actions" do p = Product.create(:name => "Product A") c = Cheese.create(:name => "Cheese A") @@ -116,13 +125,13 @@ p.save p.name = "Another name" p.save - assert_equal Traka::Change.staged_changes.count, 2 - assert_equal Traka::Change.staged_changes.map(&:klass), ["Product", "Cheese"] - assert_equal Traka::Change.staged_changes.map(&:action_type), ["create", "create"] + assert_equal Traka::Change.changes.count, 2 + assert_equal Traka::Change.changes.map(&:klass), ["Product", "Cheese"] + assert_equal Traka::Change.changes.map(&:action_type), ["create", "create"] end test "TrakaChange can filter out obsolete update->update actions" do p = Product.create(:name => "Product A") c = Cheese.create(:name => "Cheese A") @@ -139,13 +148,13 @@ p.save c.name = "New name" c.save - assert_equal Traka::Change.staged_changes.count, 2 - assert_equal Traka::Change.staged_changes.map(&:klass), ["Product", "Cheese"] - assert_equal Traka::Change.staged_changes.map(&:action_type), ["update", "update"] + assert_equal Traka::Change.changes.count, 2 + assert_equal Traka::Change.changes.map(&:klass), ["Product", "Cheese"] + assert_equal Traka::Change.changes.map(&:action_type), ["update", "update"] end test "TrakaChange can give unabridged list of changes" do p = Product.create(:name => "Product A") c = Cheese.create(:name => "Cheese A") @@ -158,13 +167,13 @@ p.destroy c.destroy # Abridged version would be empty because destroys would cancel out creates and updates. - assert_equal Traka::Change.staged_changes(:filter => false).count, 6 - assert_equal Traka::Change.staged_changes(:filter => false).map(&:klass), ["Product", "Cheese", "Product", "Product", "Product", "Cheese"] - assert_equal Traka::Change.staged_changes(:filter => false).map(&:action_type), ["create", "create", "update", "update", "destroy", "destroy"] + assert_equal Traka::Change.changes(:filter => false).count, 6 + assert_equal Traka::Change.changes(:filter => false).map(&:klass), ["Product", "Cheese", "Product", "Product", "Product", "Cheese"] + assert_equal Traka::Change.changes(:filter => false).map(&:action_type), ["create", "create", "update", "update", "destroy", "destroy"] end test "TrakaChange can give changes for sub-set of resources" do p = Product.create(:name => "Product A") c = Cheese.create(:name => "Cheese A") @@ -173,13 +182,13 @@ p.save c.name = "Another name" c.save - assert_equal Traka::Change.staged_changes(:only => [Product], :filter => false).count, 2 - assert_equal Traka::Change.staged_changes(:only => [Product], :filter => false).map(&:klass), ["Product", "Product"] - assert_equal Traka::Change.staged_changes(:only => [Product], :filter => false).map(&:action_type), ["create", "update"] + assert_equal Traka::Change.changes(:only => [Product], :filter => false).count, 2 + assert_equal Traka::Change.changes(:only => [Product], :filter => false).map(&:klass), ["Product", "Product"] + assert_equal Traka::Change.changes(:only => [Product], :filter => false).map(&:action_type), ["create", "update"] end test "TrakaChange can give changes for sub-set of actions" do p = Product.create(:name => "Product A") c = Cheese.create(:name => "Cheese A") @@ -188,13 +197,13 @@ p.save p.name = "Another name" p.save - assert_equal Traka::Change.staged_changes(:actions => [:create]).count, 2 - assert_equal Traka::Change.staged_changes(:actions => [:create]).map(&:klass), ["Product", "Cheese"] - assert_equal Traka::Change.staged_changes(:actions => [:create]).map(&:action_type), ["create", "create"] + assert_equal Traka::Change.changes(:actions => [:create]).count, 2 + assert_equal Traka::Change.changes(:actions => [:create]).map(&:klass), ["Product", "Cheese"] + assert_equal Traka::Change.changes(:actions => [:create]).map(&:action_type), ["create", "create"] end test "TrakaChange can accept multiple options" do p = Product.create(:name => "Product A") c = Cheese.create(:name => "Cheese A") @@ -206,23 +215,23 @@ p.save p.destroy c.destroy - assert_equal Traka::Change.staged_changes(:actions => [:create], :filter => false, :only => [Product, Cheese]).count, 2 - assert_equal Traka::Change.staged_changes(:actions => [:create], :filter => false, :only => [Product, Cheese]).map(&:klass), ["Product", "Cheese"] - assert_equal Traka::Change.staged_changes(:actions => [:create], :filter => false, :only => [Product, Cheese]).map(&:action_type), ["create", "create"] + assert_equal Traka::Change.changes(:actions => [:create], :filter => false, :only => [Product, Cheese]).count, 2 + assert_equal Traka::Change.changes(:actions => [:create], :filter => false, :only => [Product, Cheese]).map(&:klass), ["Product", "Cheese"] + assert_equal Traka::Change.changes(:actions => [:create], :filter => false, :only => [Product, Cheese]).map(&:action_type), ["create", "create"] - assert_equal Traka::Change.staged_changes(:actions => [:create, :update], :filter => false).count, 4 - assert_equal Traka::Change.staged_changes(:actions => [:create, :update], :filter => false, :only => [Product, Cheese]).map(&:klass), ["Product", "Cheese", "Product", "Product"] - assert_equal Traka::Change.staged_changes(:actions => [:create, :update], :filter => false, :only => [Product, Cheese]).map(&:action_type), ["create", "create", "update", "update"] + assert_equal Traka::Change.changes(:actions => [:create, :update], :filter => false).count, 4 + assert_equal Traka::Change.changes(:actions => [:create, :update], :filter => false, :only => [Product, Cheese]).map(&:klass), ["Product", "Cheese", "Product", "Product"] + assert_equal Traka::Change.changes(:actions => [:create, :update], :filter => false, :only => [Product, Cheese]).map(&:action_type), ["create", "create", "update", "update"] end test "TrakaChange can resolve AR objects" do p = Product.create(:name => "Product A") c = Cheese.create(:name => "Cheese A") - assert_equal Traka::Change.staged_changes.first.get_record, p - assert_equal Traka::Change.staged_changes.last.get_record, c + assert_equal Traka::Change.changes.first.get_record, p + assert_equal Traka::Change.changes.last.get_record, c end end