Sha256: bd2912dab2d9d3f5db4c970c971b804f446ec65ce3c88988c8d5b50238c98675
Contents?: true
Size: 1.8 KB
Versions: 4
Compression:
Stored size: 1.8 KB
Contents
require File.expand_path('../spec_helper', __FILE__) describe ActiveRecord::Duplicate::Callbacks 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
4 entries across 4 versions & 1 rubygems