1
0
Fork 0
This repository has been archived on 2023-03-27. You can view files and clone it, but cannot push or open issues or pull requests.
lpr-partynest/spec/interactors/merge_account_person_spec.rb

68 lines
1.6 KiB
Ruby

# frozen_string_literal: true
require 'rails_helper'
RSpec.describe MergeAccountPerson do
subject { described_class.call account: account, person: person }
let(:account) { create :usual_account, contact_list: old_contact_list }
let(:person) { create :initial_person, contact_list: new_contact_list }
let(:old_contact_list) { create :some_contact_list }
let(:new_contact_list) { create :some_contact_list }
specify do
expect { subject }.to \
change(account, :person)
.from(nil)
.to(person)
end
specify do
expect { subject }.to \
change(person, :account)
.from(nil)
.to(account)
end
specify do
expect { subject }.to \
change(account, :contact_list)
.from(old_contact_list)
.to(new_contact_list)
end
specify do
expect { subject }.not_to \
change(person, :contact_list)
.from(new_contact_list)
end
specify do
expect { subject }.to \
change(old_contact_list.contacts, :count)
.from(old_contact_list.contacts.count)
.to(0)
end
specify do
expect { subject }.to \
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(old_contact_list.contacts, :to_a)
.from(old_contact_list.contacts.to_a)
.to([])
end
specify do
expect { subject }.to \
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