mirror of
https://github.com/lingble/chatwoot.git
synced 2025-11-05 13:37:55 +00:00
This PR adds the following changes 1. Add `Imap::GoogleFetchEmailService` and `Google::RefreshOauthTokenService`. The `Google::RefreshOauthTokenService` uses `OmniAuth::Strategies::GoogleOauth2` which is already added as a packge 2. Update `Inboxes::FetchImapEmailsJob` to handle Google inboxes 3. Add SMTP settings for Google in `ConversationReplyMailerHelper` to allow sending emails ## Preview #### Incoming emails  #### Outgoing email  --------- Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
50 lines
1.3 KiB
Ruby
50 lines
1.3 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'rails_helper'
|
|
require Rails.root.join 'spec/models/concerns/reauthorizable_shared.rb'
|
|
|
|
RSpec.describe Channel::Email do
|
|
let(:channel) { create(:channel_email) }
|
|
|
|
describe 'concerns' do
|
|
it_behaves_like 'reauthorizable'
|
|
|
|
context 'when prompt_reauthorization!' do
|
|
it 'calls channel notifier mail for email' do
|
|
admin_mailer = double
|
|
mailer_double = double
|
|
expect(AdministratorNotifications::ChannelNotificationsMailer).to receive(:with).and_return(admin_mailer)
|
|
expect(admin_mailer).to receive(:email_disconnect).with(channel.inbox).and_return(mailer_double)
|
|
expect(mailer_double).to receive(:deliver_later)
|
|
channel.prompt_reauthorization!
|
|
end
|
|
end
|
|
end
|
|
|
|
it 'has a valid name' do
|
|
expect(channel.name).to eq('Email')
|
|
end
|
|
|
|
context 'when microsoft?' do
|
|
it 'returns false' do
|
|
expect(channel.microsoft?).to be(false)
|
|
end
|
|
|
|
it 'returns true' do
|
|
channel.provider = 'microsoft'
|
|
expect(channel.microsoft?).to be(true)
|
|
end
|
|
end
|
|
|
|
context 'when google?' do
|
|
it 'returns false' do
|
|
expect(channel.google?).to be(false)
|
|
end
|
|
|
|
it 'returns true' do
|
|
channel.provider = 'google'
|
|
expect(channel.google?).to be(true)
|
|
end
|
|
end
|
|
end
|