test/unit/model_test.rb in paper_trail-5.1.1 vs test/unit/model_test.rb in paper_trail-5.2.0

- old
+ new

@@ -240,11 +240,11 @@ should "not have any previous versions" do assert_equal [], @widget.versions end should "be live" do - assert @widget.live? + assert @widget.paper_trail.live? end context "which is then created" do setup { @widget.update_attributes name: "Henry", created_at: Time.now - 1.day } @@ -260,11 +260,11 @@ should "record the correct event" do assert_match(/create/i, @widget.versions.first.event) end should "be live" do - assert @widget.live? + assert @widget.paper_trail.live? end should "use the widget `updated_at` as the version's `created_at`" do assert_equal @widget.updated_at.to_i, @widget.versions.first.created_at.to_i end @@ -315,11 +315,13 @@ should "record the correct event" do assert_match(/update/i, @widget.versions.last.event) end should "have versions that are not live" do - assert @widget.versions.map(&:reify).compact.all? { |w| !w.live? } + assert @widget.versions.map(&:reify).compact.all? { |w| + !w.paper_trail.live? + } end should "have stored changes" do # Behavior for ActiveRecord 4 is different than ActiveRecord 3; # AR4 includes the `updated_at` column in changes for updates, which @@ -564,15 +566,15 @@ end end context "with its paper trail turned off" do setup do - Widget.paper_trail_off! + Widget.paper_trail.disable @count = @widget.versions.length end - teardown { Widget.paper_trail_on! } + teardown { Widget.paper_trail.enable } context "when updated" do setup { @widget.update_attributes name: "Beeblebrox" } should "not add to its trail" do @@ -580,17 +582,17 @@ end end context 'when destroyed "without versioning"' do should "leave paper trail off after call" do - @widget.without_versioning :destroy - assert !Widget.paper_trail_enabled_for_model? + @widget.paper_trail.without_versioning :destroy + assert_equal false, Widget.paper_trail.enabled? end end context "and then its paper trail turned on" do - setup { Widget.paper_trail_on! } + setup { Widget.paper_trail.enable } context "when updated" do setup { @widget.update_attributes name: "Ford" } should "add to its trail" do @@ -598,35 +600,35 @@ end end context 'when updated "without versioning"' do setup do - @widget.without_versioning do + @widget.paper_trail.without_versioning do @widget.update_attributes name: "Ford" end # The model instance should yield itself for convenience purposes - @widget.without_versioning { |w| w.update_attributes name: "Nixon" } + @widget.paper_trail.without_versioning { |w| w.update_attributes name: "Nixon" } end should "not create new version" do assert_equal @count, @widget.versions.length end should "enable paper trail after call" do - assert Widget.paper_trail_enabled_for_model? + assert Widget.paper_trail.enabled? end end context "when receiving a method name as an argument" do - setup { @widget.without_versioning(:touch_with_version) } + setup { @widget.paper_trail.without_versioning(:touch_with_version) } should "not create new version" do assert_equal @count, @widget.versions.length end should "enable paper trail after call" do - assert Widget.paper_trail_enabled_for_model? + assert Widget.paper_trail.enabled? end end end end end @@ -643,27 +645,27 @@ @version = @widget.versions.last # only 1 version end should "track who made the change" do assert_equal "Alice", @version.whodunnit - assert_nil @version.paper_trail_originator + assert_nil @version.paper_trail_originator assert_equal "Alice", @version.terminator - assert_equal "Alice", @widget.paper_trail_originator + assert_equal "Alice", @widget.paper_trail.originator end context "when a record is updated" do setup do PaperTrail.whodunnit = "Bob" @widget.update_attributes name: "Rivet" @version = @widget.versions.last end should "track who made the change" do - assert_equal "Bob", @version.whodunnit + assert_equal "Bob", @version.whodunnit assert_equal "Alice", @version.paper_trail_originator - assert_equal "Bob", @version.terminator - assert_equal "Bob", @widget.paper_trail_originator + assert_equal "Bob", @version.terminator + assert_equal "Bob", @widget.paper_trail.originator end context "when a record is destroyed" do setup do PaperTrail.whodunnit = "Charlie" @@ -671,13 +673,13 @@ @version = PaperTrail::Version.last end should "track who made the change" do assert_equal "Charlie", @version.whodunnit - assert_equal "Bob", @version.paper_trail_originator + assert_equal "Bob", @version.paper_trail_originator assert_equal "Charlie", @version.terminator - assert_equal "Charlie", @widget.paper_trail_originator + assert_equal "Charlie", @widget.paper_trail.originator end end end end end @@ -733,11 +735,11 @@ end should "should return the correct originator" do PaperTrail.whodunnit = "Ben" @foo.update_attribute(:name, "Geoffrey") - assert_equal PaperTrail.whodunnit, @foo.paper_trail_originator + assert_equal PaperTrail.whodunnit, @foo.paper_trail.originator end context "when destroyed" do setup { @foo.destroy } @@ -766,44 +768,47 @@ @widget.versions[2].update_attributes created_at: @second_update @widget.update_attribute :updated_at, @second_update end should "return nil for version_at before it was created" do - assert_nil @widget.version_at(@created - 1) + assert_nil @widget.paper_trail.version_at(@created - 1) end should "return how it looked when created for version_at its creation" do - assert_equal "Widget", @widget.version_at(@created).name + assert_equal "Widget", @widget.paper_trail.version_at(@created).name end should "return how it looked before its first update" do - assert_equal "Widget", @widget.version_at(@first_update - 1).name + assert_equal "Widget", @widget.paper_trail.version_at(@first_update - 1).name end should "return how it looked after its first update" do - assert_equal "Fidget", @widget.version_at(@first_update).name + assert_equal "Fidget", @widget.paper_trail.version_at(@first_update).name end should "return how it looked before its second update" do - assert_equal "Fidget", @widget.version_at(@second_update - 1).name + assert_equal "Fidget", @widget.paper_trail.version_at(@second_update - 1).name end should "return how it looked after its second update" do - assert_equal "Digit", @widget.version_at(@second_update).name + assert_equal "Digit", @widget.paper_trail.version_at(@second_update).name end should "return the current object for version_at after latest update" do - assert_equal "Digit", @widget.version_at(1.day.from_now).name + assert_equal "Digit", @widget.paper_trail.version_at(1.day.from_now).name end context "passing in a string representation of a timestamp" do should "still return a widget when appropriate" do # need to add 1 second onto the timestamps before casting to a string, # since casting a Time to a string drops the microseconds - assert_equal "Widget", @widget.version_at((@created + 1.second).to_s).name - assert_equal "Fidget", @widget.version_at((@first_update + 1.second).to_s).name - assert_equal "Digit", @widget.version_at((@second_update + 1.second).to_s).name + assert_equal "Widget", + @widget.paper_trail.version_at((@created + 1.second).to_s).name + assert_equal "Fidget", + @widget.paper_trail.version_at((@first_update + 1.second).to_s).name + assert_equal "Digit", + @widget.paper_trail.version_at((@second_update + 1.second).to_s).name end end end context ".versions_between" do @@ -817,17 +822,17 @@ @widget.update_attribute :updated_at, @second_update end should "return versions in the time period" do assert_equal ["Fidget"], - @widget.versions_between(20.days.ago, 10.days.ago).map(&:name) + @widget.paper_trail.versions_between(20.days.ago, 10.days.ago).map(&:name) assert_equal %w(Widget Fidget), - @widget.versions_between(45.days.ago, 10.days.ago).map(&:name) + @widget.paper_trail.versions_between(45.days.ago, 10.days.ago).map(&:name) assert_equal %w(Fidget Digit Digit), - @widget.versions_between(16.days.ago, 1.minute.ago).map(&:name) + @widget.paper_trail.versions_between(16.days.ago, 1.minute.ago).map(&:name) assert_equal [], - @widget.versions_between(60.days.ago, 45.days.ago).map(&:name) + @widget.paper_trail.versions_between(60.days.ago, 45.days.ago).map(&:name) end end context "on the first version" do setup { @version = @widget.versions.first } @@ -946,37 +951,39 @@ should "know which version it came from" do assert_equal @version, @widget.version end should "return its previous self" do - assert_equal @widget.versions[-2].reify, @widget.previous_version + assert_equal @widget.versions[-2].reify, + @widget.paper_trail.previous_version end end context "A non-reified item" do setup { @widget = Widget.new } should "not have a previous version" do - assert_nil @widget.previous_version + assert_nil @widget.paper_trail.previous_version end should "not have a next version" do - assert_nil @widget.next_version + assert_nil @widget.paper_trail.next_version end context "with versions" do setup do @widget.save %w( Tom Dick Jane ).each { |name| @widget.update_attributes name: name } end should "have a previous version" do - assert_equal @widget.versions.last.reify.name, @widget.previous_version.name + assert_equal @widget.versions.last.reify.name, + @widget.paper_trail.previous_version.name end should "not have a next version" do - assert_nil @widget.next_version + assert_nil @widget.paper_trail.next_version end end end context "A reified item" do @@ -986,17 +993,19 @@ @second_widget = @widget.versions[1].reify # first widget is `nil` @last_widget = @widget.versions.last.reify end should "have a previous version" do - assert_nil @second_widget.previous_version # `create` events return `nil` for `reify` - assert_equal @widget.versions[-2].reify.name, @last_widget.previous_version.name + # `create` events return `nil` for `reify` + assert_nil @second_widget.paper_trail.previous_version + assert_equal @widget.versions[-2].reify.name, + @last_widget.paper_trail.previous_version.name end should "have a next version" do - assert_equal @widget.versions[2].reify.name, @second_widget.next_version.name - assert_equal @last_widget.next_version.name, @widget.name + assert_equal @widget.versions[2].reify.name, @second_widget.paper_trail.next_version.name + assert_equal @last_widget.paper_trail.next_version.name, @widget.name end end context ":has_many :through" do setup do @@ -1268,17 +1277,18 @@ should "create a new version record" do assert_equal 2, @doc.paper_trail_versions.length end should "respond to `next_version` as normal" do - assert_equal @doc.paper_trail_versions.last.reify.next_version.name, @doc.name + reified = @doc.paper_trail_versions.last.reify + assert_equal reified.paper_trail.next_version.name, @doc.name end should "respond to `previous_version` as normal" do @doc.update_attributes name: "Doc 2" assert_equal 3, @doc.paper_trail_versions.length - assert_equal "Doc 1", @doc.previous_version.name + assert_equal "Doc 1", @doc.paper_trail.previous_version.name end end context "The `on` option" do context "on create" do @@ -1348,11 +1358,11 @@ should "not have any versions" do assert_equal 0, @fluxor.versions.length end should "still respond to touch_with_version" do - @fluxor.touch_with_version + @fluxor.paper_trail.touch_with_version assert_equal 1, @fluxor.versions.length end end context "allows a symbol to be passed" do setup do @@ -1403,10 +1413,10 @@ should "know which version it came from" do assert_equal @version, @widget.custom_version end should "return its previous self" do - assert_equal @widget.versions[-2].reify, @widget.previous_version + assert_equal @widget.versions[-2].reify, @widget.paper_trail.previous_version end end context "custom events" do context "on create" do