123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- # Copyright (C) 2012-2025 Zammad Foundation, https://zammad-foundation.org/
- require 'rails_helper'
- RSpec.describe Channel::Driver::Pop3 do
- describe '#check_configuration' do
- before do
- stub_const('MockedMessage', Struct.new(:pop))
- allow_any_instance_of(Net::POP3)
- .to receive(:start)
- allow_any_instance_of(Net::POP3)
- .to receive(:finish)
- allow_any_instance_of(Net::POP3)
- .to receive(:enable_ssl)
- allow_any_instance_of(Net::POP3)
- .to receive(:mails)
- .and_return(message_ids)
- end
- def mock_a_message(verify: false)
- attrs = {
- from: Faker::Internet.unique.email,
- to: Faker::Internet.unique.email,
- body: Faker::Lorem.sentence,
- content_type: 'text/html',
- }
- if verify
- attrs[:'X-Zammad-Ignore'] = 'true'
- attrs[:'X-Zammad-Verify'] = 'true'
- attrs[:'X-Zammad-Verify-Time'] = Time.current.to_s
- end
- Channel::EmailBuild.build(**attrs).to_s
- end
- context 'when no messages exist' do
- let(:message_ids) { [] }
- it 'finds no content messages' do
- response = described_class
- .new
- .check_configuration({})
- expect(response).to include(
- result: 'ok',
- content_messages: be_zero,
- )
- end
- end
- context 'when a verify message exist' do
- let(:message_ids) do
- [
- MockedMessage.new(mock_a_message(verify: true)),
- ]
- end
- it 'finds no content messages' do
- response = described_class
- .new
- .check_configuration({})
- expect(response).to include(
- result: 'ok',
- content_messages: be_zero,
- )
- end
- end
- context 'when some content messages exist' do
- let(:message_ids) do
- [
- MockedMessage.new(mock_a_message),
- MockedMessage.new(mock_a_message),
- MockedMessage.new(mock_a_message),
- ]
- end
- it 'finds content messages' do
- response = described_class
- .new
- .check_configuration({})
- expect(response).to include(
- result: 'ok',
- content_messages: 3,
- )
- end
- end
- context 'when a verify and a content message exists' do
- let(:message_ids) do
- [
- MockedMessage.new(mock_a_message(verify: true)),
- MockedMessage.new(mock_a_message),
- ]
- end
- it 'finds content messages' do
- response = described_class
- .new
- .check_configuration({})
- expect(response).to include(
- result: 'ok',
- content_messages: 2,
- )
- end
- end
- end
- end
|