From 3df326e221652bc8fad2bc4ba3dd060361a4511d Mon Sep 17 00:00:00 2001 From: Alex Kotov Date: Wed, 14 Aug 2019 19:55:00 +0500 Subject: [PATCH] Improve interactors --- app/interactors/destroy_contact_list.rb | 2 +- app/interactors/merge_account_person.rb | 5 ++-- app/interactors/merge_contact_lists.rb | 8 +++--- spec/interactors/merge_contact_lists_spec.rb | 29 +++++++++++--------- 4 files changed, 23 insertions(+), 21 deletions(-) diff --git a/app/interactors/destroy_contact_list.rb b/app/interactors/destroy_contact_list.rb index 116d480..0857e5b 100644 --- a/app/interactors/destroy_contact_list.rb +++ b/app/interactors/destroy_contact_list.rb @@ -4,6 +4,6 @@ class DestroyContactList include Interactor def call - context.destroyable_contact_list.destroy! + context.old_contact_list.destroy! end end diff --git a/app/interactors/merge_account_person.rb b/app/interactors/merge_account_person.rb index f0b2ff5..93f0c2b 100644 --- a/app/interactors/merge_account_person.rb +++ b/app/interactors/merge_account_person.rb @@ -12,8 +12,7 @@ class MergeAccountPerson end before do - context.from = context.account.contact_list - context.to = context.person.contact_list - context.destroyable_contact_list = context.account.contact_list + context.old_contact_list = context.account.contact_list + context.new_contact_list = context.person.contact_list end end diff --git a/app/interactors/merge_contact_lists.rb b/app/interactors/merge_contact_lists.rb index 0efa50c..381362f 100644 --- a/app/interactors/merge_contact_lists.rb +++ b/app/interactors/merge_contact_lists.rb @@ -4,14 +4,14 @@ class MergeContactLists include Interactor after do - context.from.contacts.reload - context.to.contacts.reload + context.old_contact_list.contacts.reload + context.new_contact_list.contacts.reload end def call ActiveRecord::Base.transaction do - context.from.contacts.each do |contact| - contact.update! contact_list: context.to + context.old_contact_list.contacts.each do |contact| + contact.update! contact_list: context.new_contact_list end end end diff --git a/spec/interactors/merge_contact_lists_spec.rb b/spec/interactors/merge_contact_lists_spec.rb index ef94d1a..c052026 100644 --- a/spec/interactors/merge_contact_lists_spec.rb +++ b/spec/interactors/merge_contact_lists_spec.rb @@ -3,36 +3,39 @@ require 'rails_helper' RSpec.describe MergeContactLists do - subject { described_class.call from: from, to: to } + subject do + described_class.call old_contact_list: old_contact_list, + new_contact_list: new_contact_list + end - let(:from) { create :some_contact_list } - let(:to) { create :some_contact_list } + let(:old_contact_list) { create :some_contact_list } + let(:new_contact_list) { create :some_contact_list } specify do expect { subject }.to \ - change(from.contacts, :count) - .from(from.contacts.count) + change(old_contact_list.contacts, :count) + .from(old_contact_list.contacts.count) .to(0) end specify do expect { subject }.to \ - change(to.contacts, :count) - .from(to.contacts.count) - .to(from.contacts.count + to.contacts.count) + change(new_contact_list.contacts, :count) + .from(new_contact_list.contacts.count) + .to(old_contact_list.contacts.count + new_contact_list.contacts.count) end specify do expect { subject }.to \ - change(from.contacts, :to_a) - .from(from.contacts.to_a) + change(old_contact_list.contacts, :to_a) + .from(old_contact_list.contacts.to_a) .to([]) end specify do expect { subject }.to \ - change(to.contacts, :to_a) - .from(to.contacts.to_a) - .to(to.contacts.to_a + from.contacts.to_a) + change(new_contact_list.contacts, :to_a) + .from(new_contact_list.contacts.to_a) + .to(new_contact_list.contacts.to_a + old_contact_list.contacts.to_a) end end