Permalink
Browse files

Refactoring: Migrate email_address_test.rb to RSpec

  • Loading branch information...
rlue authored and znuny-robo committed Feb 7, 2019
1 parent 7639ef4 commit b3cb67836df67b3fbbe136c47b047df97368eb79
Showing with 70 additions and 99 deletions.
  1. +4 −4 spec/factories/email_address.rb
  2. +66 −0 spec/models/email_address_spec.rb
  3. +0 −95 test/unit/email_address_test.rb
@@ -1,9 +1,9 @@
FactoryBot.define do
factory :email_address do
sequence(:email) { |n| "zammad#{n}@localhost.com" }
association :channel, factory: :email_channel
sequence(:email) { |n| "zammad#{n}@localhost.com" }
sequence(:realname) { |n| "zammad#{n}" }
channel { create(:email_channel) }
created_by_id 1
updated_by_id 1
created_by_id { 1 }
updated_by_id { 1 }
end
end
@@ -0,0 +1,66 @@
require 'rails_helper'

RSpec.describe EmailAddress, type: :model do
subject(:email_address) { create(:email_address) }

describe 'Attributes:' do
describe '#active' do
subject(:email_address) do
create(:email_address, channel: channel, active: active)
end

context 'without a Channel association' do
let(:channel) { nil }
let(:active) { true }

it 'always returns false' do
expect(email_address.active).not_to eq(active)
end
end

context 'with a Channel association' do
let(:channel) { create(:email_channel) }
let(:active) { true }

it 'returns the value it was set to' do
expect(email_address.active).to eq(active)
end
end
end
end

describe 'Associations:' do
describe '#groups' do
let(:group) { create(:group, email_address: email_address) }

context 'when an EmailAddress is destroyed' do
it 'removes the #email_address_id from all associated Groups' do
expect { email_address.destroy }
.to change { group.reload.email_address_id }.to(nil)
end
end
end

describe '#channel' do
subject(:email_addresses) { create_list(:email_address, 2, channel: channel) }
let(:channel) { create(:channel) }

context 'when a Channel is destroyed' do
it 'removes the #channel_id from all its associated EmailAddresses' do
expect { channel.destroy }
.to change { email_addresses.map(&:reload).map(&:channel_id) }
.to([nil, nil])
end

context 'and then an identical Channel is created' do
it 'removes the #channel_id from all its associated EmailAddresses' do
channel.destroy

expect { create(:channel) }
.not_to change { email_addresses.map(&:reload).map(&:channel_id) }
end
end
end
end
end
end

This file was deleted.

Oops, something went wrong.

0 comments on commit b3cb678

Please sign in to comment.