email_domain_block_spec.rb 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. require 'rails_helper'
  2. RSpec.describe EmailDomainBlock, type: :model do
  3. describe 'validations' do
  4. it 'has a valid fabricator' do
  5. email_domain_block = Fabricate.build(:email_domain_block)
  6. expect(email_domain_block).to be_valid
  7. end
  8. end
  9. describe 'block?' do
  10. let(:input) { nil }
  11. context 'given an e-mail address' do
  12. let(:input) { 'nyarn@example.com' }
  13. it 'returns true if the domain is blocked' do
  14. Fabricate(:email_domain_block, domain: 'example.com')
  15. expect(EmailDomainBlock.block?(input)).to be true
  16. end
  17. it 'returns false if the domain is not blocked' do
  18. Fabricate(:email_domain_block, domain: 'other-example.com')
  19. expect(EmailDomainBlock.block?(input)).to be false
  20. end
  21. end
  22. context 'given an array of domains' do
  23. let(:input) { %w(foo.com mail.foo.com) }
  24. it 'returns true if the domain is blocked' do
  25. Fabricate(:email_domain_block, domain: 'mail.foo.com')
  26. expect(EmailDomainBlock.block?(input)).to be true
  27. end
  28. end
  29. end
  30. end