Sha256: ace94460229fcfe5bb4588187cee61aad20e5168af0c7d134be077426be6c7e5
Contents?: true
Size: 1.79 KB
Versions: 3
Compression:
Stored size: 1.79 KB
Contents
require File.expand_path('../spec_helper', __FILE__) describe ActiveRecord::Duplicate do let(:klass) { Class.new(ActiveRecord::Base) { self.table_name = 'records' } } it 'runs callbacks' do mock = MiniTest::Mock.new klass.instance_eval do before_duplication { mock.before_duplication(duplication_context) } after_duplication { mock.after_duplication(duplication_context) } end mock.expect(:before_duplication, nil, [:original]) mock.expect(:after_duplication, nil, [:original]) mock.expect(:before_duplication, nil, [:duplicate]) mock.expect(:after_duplication, nil, [:duplicate]) klass.create.duplicate mock.verify end it 'runs callbacks on the original object' do mock = MiniTest::Mock.new klass.instance_eval do before_duplication(on: :original) { mock.before_duplication(duplication_context) } after_duplication(on: :original) { mock.after_duplication(duplication_context) } end mock.expect(:before_duplication, nil, [:original]) mock.expect(:after_duplication, nil, [:original]) klass.create.duplicate mock.verify end it 'runs callbacks on the duplicated object' do mock = MiniTest::Mock.new klass.instance_eval do before_duplication(on: :duplicate) { mock.before_duplication(duplication_context) } after_duplication(on: :duplicate) { mock.after_duplication(duplication_context) } end mock.expect(:before_duplication, nil, [:duplicate]) mock.expect(:after_duplication, nil, [:duplicate]) klass.create.duplicate mock.verify end it 'wont duplicate records if callbacks return false' do klass.instance_eval do before_duplication(on: :original) { false } end klass.create.duplicate.must_equal(false) end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
activerecord-duplicate-0.6.1 | spec/callbacks_spec.rb |
activerecord-duplicate-0.6.0 | spec/callbacks_spec.rb |
activerecord-duplicate-0.5.1 | spec/callbacks_spec.rb |