Sha256: 2047ff766337a1ccdb5bc5426e467e354650c4a255dd6d136520d6b622484b48

Contents?: true

Size: 1.64 KB

Versions: 9

Compression:

Stored size: 1.64 KB

Contents

require "test_helper"

class InheritanceColumnTest < ActiveSupport::TestCase
  context "STI models" do
    setup do
      @animal = Animal.create name: "Animal"
      @animal.update_attributes name: "Animal from the Muppets"
      @animal.update_attributes name: "Animal Muppet"
      @animal.destroy

      @dog = Dog.create name: "Snoopy"
      @dog.update_attributes name: "Scooby"
      @dog.update_attributes name: "Scooby Doo"
      @dog.destroy

      @cat = Cat.create name: "Garfield"
      @cat.update_attributes name: "Garfield (I hate Mondays)"
      @cat.update_attributes name: "Garfield The Cat"
      @cat.destroy
    end

    should "work with custom STI inheritance column" do
      assert_equal 12, PaperTrail::Version.count
      assert_equal 4, @animal.versions.count
      assert_nil @animal.versions.first.reify
      @animal.versions[1..-1].each { |v| assert_equal "Animal", v.reify.class.name }

      # For some reason `@dog.versions` doesn't include the final `destroy` version.
      # Neither do `@dog.versions.scoped` nor `@dog.versions(true)` nor `@dog.versions.reload`.
      dog_versions = PaperTrail::Version.where(item_id: @dog.id).
        order(PaperTrail.timestamp_field)
      assert_equal 4, dog_versions.count
      assert_nil dog_versions.first.reify
      assert_equal %w(NilClass Dog Dog Dog), dog_versions.map { |v| v.reify.class.name }

      cat_versions = PaperTrail::Version.where(item_id: @cat.id).
        order(PaperTrail.timestamp_field)
      assert_equal 4, cat_versions.count
      assert_nil cat_versions.first.reify
      assert_equal %w(NilClass Cat Cat Cat), cat_versions.map { |v| v.reify.class.name }
    end
  end
end

Version data entries

9 entries across 9 versions & 2 rubygems

Version Path
enju_leaf-1.2.1 vendor/bundle/ruby/2.3/gems/paper_trail-5.2.3/test/unit/inheritance_column_test.rb
paper_trail-5.2.3 test/unit/inheritance_column_test.rb
paper_trail-5.2.2 test/unit/inheritance_column_test.rb
paper_trail-5.2.1 test/unit/inheritance_column_test.rb
paper_trail-5.2.0 test/unit/inheritance_column_test.rb
paper_trail-5.1.1 test/unit/inheritance_column_test.rb
paper_trail-5.1.0 test/unit/inheritance_column_test.rb
paper_trail-5.0.1 test/unit/inheritance_column_test.rb
paper_trail-5.0.0 test/unit/inheritance_column_test.rb