Sha256: aecce2fc8f1fae031e676be74e0ecbf4d9a28b2f3127734abd2e9551cd391055

Contents?: true

Size: 1.7 KB

Versions: 6

Compression:

Stored size: 1.7 KB

Contents

require "test_helper"

class ProtectedAttrsTest < ActiveSupport::TestCase
  subject { ProtectedWidget.new }

  # These ActiveModel matchers (provided by shoulda-matchers) only work for
  # Rails 3.
  if ActiveRecord::VERSION::MAJOR < 4
    accessible_attrs = ProtectedWidget.accessible_attributes.to_a
    accessible_attrs.each do |attr_name|
      should allow_mass_assignment_of(attr_name.to_sym)
    end
    inaccessible = ProtectedWidget.
      column_names.
      reject { |column_name| accessible_attrs.include?(column_name) }
    inaccessible.each do |attr_name|
      should_not allow_mass_assignment_of(attr_name.to_sym)
    end
  end

  context "A model with `attr_accessible` created" do
    setup do
      @widget = ProtectedWidget.create! name: "Henry"
      @initial_attributes = @widget.attributes
    end

    should "be `nil` in its previous version" do
      assert_nil @widget.paper_trail.previous_version
    end

    context "which is then updated" do
      setup do
        @widget.assign_attributes(name: "Jeff", a_text: "Short statement")
        @widget.an_integer = 42
        @widget.save!
      end

      should "not be `nil` in its previous version" do
        assert_not_nil @widget.paper_trail.previous_version
      end

      should "the previous version should contain right attributes" do
        # For some reason this test seems to be broken in JRuby 1.9 mode in the
        # test env even though it works in the console. WTF?
        unless ActiveRecord::VERSION::MAJOR >= 4 && defined?(JRUBY_VERSION)
          previous_attributes = @widget.paper_trail.previous_version.attributes
          assert_attributes_equal previous_attributes, @initial_attributes
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
enju_leaf-1.2.1 vendor/bundle/ruby/2.3/gems/paper_trail-5.2.3/test/unit/protected_attrs_test.rb
paper_trail-6.0.0 test/unit/protected_attrs_test.rb
paper_trail-5.2.3 test/unit/protected_attrs_test.rb
paper_trail-5.2.2 test/unit/protected_attrs_test.rb
paper_trail-5.2.1 test/unit/protected_attrs_test.rb
paper_trail-5.2.0 test/unit/protected_attrs_test.rb