diff options
| author | Sean Griffin <sean@seantheprogrammer.com> | 2018-09-20 11:58:20 -0600 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-09-20 11:58:20 -0600 | 
| commit | 8a908451b614d03db60da05c1525cfaf523189fa (patch) | |
| tree | 561664a76a98440f94c31e76ad2476219c2ecc47 /activerecord/test | |
| parent | 0a829f7db10263c5bf5f8b4ee04ea92a05ecdd39 (diff) | |
| parent | a0482d39110860272a056593e0e5c6e2ef4d75b8 (diff) | |
| download | rails-8a908451b614d03db60da05c1525cfaf523189fa.tar.gz rails-8a908451b614d03db60da05c1525cfaf523189fa.tar.bz2 rails-8a908451b614d03db60da05c1525cfaf523189fa.zip  | |
Merge pull request #33925 from rafaelfranca/rm-fix-column_defaults
Make a deep copy of the _default_attributes in column_defaults
Diffstat (limited to 'activerecord/test')
| -rw-r--r-- | activerecord/test/cases/attributes_test.rb | 14 | 
1 files changed, 14 insertions, 0 deletions
diff --git a/activerecord/test/cases/attributes_test.rb b/activerecord/test/cases/attributes_test.rb index 3bc56694be..2632aec7ab 100644 --- a/activerecord/test/cases/attributes_test.rb +++ b/activerecord/test/cases/attributes_test.rb @@ -148,6 +148,20 @@ module ActiveRecord        assert_equal 2, klass.new.counter      end +    test "procs for default values are evaluated even after column_defaults is called" do +      klass = Class.new(OverloadedType) do +        @@counter = 0 +        attribute :counter, :integer, default: -> { @@counter += 1 } +      end + +      assert_equal 1, klass.new.counter + +      # column_defaults will increment the counter since the proc is called +      klass.column_defaults + +      assert_equal 3, klass.new.counter +    end +      test "procs are memoized before type casting" do        klass = Class.new(OverloadedType) do          @@counter = 0  | 
