feat: Instagram reauthorization (#11221)
This PR is part of https://github.com/chatwoot/chatwoot/pull/11054 to make the review cycle easier.
This commit is contained in:
@@ -44,4 +44,18 @@ RSpec.describe AdministratorNotifications::ChannelNotificationsMailer do
|
||||
expect(mail.to).to eq([administrator.email])
|
||||
end
|
||||
end
|
||||
|
||||
describe 'instagram_disconnect' do
|
||||
let!(:instagram_channel) { create(:channel_instagram, account: account) }
|
||||
let!(:instagram_inbox) { create(:inbox, channel: instagram_channel, account: account) }
|
||||
let(:mail) { described_class.with(account: account).instagram_disconnect(instagram_inbox).deliver_now }
|
||||
|
||||
it 'renders the subject' do
|
||||
expect(mail.subject).to eq('Your Instagram connection has expired')
|
||||
end
|
||||
|
||||
it 'renders the receiver email' do
|
||||
expect(mail.to).to eq([administrator.email])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
require Rails.root.join 'spec/models/concerns/reauthorizable_shared.rb'
|
||||
|
||||
RSpec.describe Channel::Instagram do
|
||||
let(:channel) { create(:channel_instagram) }
|
||||
@@ -14,4 +15,21 @@ RSpec.describe Channel::Instagram do
|
||||
it 'has a valid name' do
|
||||
expect(channel.name).to eq('Instagram')
|
||||
end
|
||||
|
||||
describe 'concerns' do
|
||||
it_behaves_like 'reauthorizable'
|
||||
|
||||
context 'when prompt_reauthorization!' do
|
||||
it 'calls channel notifier mail for instagram' do
|
||||
admin_mailer = double
|
||||
mailer_double = double
|
||||
|
||||
expect(AdministratorNotifications::ChannelNotificationsMailer).to receive(:with).and_return(admin_mailer)
|
||||
expect(admin_mailer).to receive(:instagram_disconnect).with(channel.inbox).and_return(mailer_double)
|
||||
expect(mailer_double).to receive(:deliver_later)
|
||||
|
||||
channel.prompt_reauthorization!
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -48,10 +48,12 @@ shared_examples_for 'reauthorizable' do
|
||||
facebook_mailer_response = instance_double(ActionMailer::MessageDelivery, deliver_later: true)
|
||||
whatsapp_mailer_response = instance_double(ActionMailer::MessageDelivery, deliver_later: true)
|
||||
email_mailer_response = instance_double(ActionMailer::MessageDelivery, deliver_later: true)
|
||||
instagram_mailer_response = instance_double(ActionMailer::MessageDelivery, deliver_later: true)
|
||||
allow(AdministratorNotifications::ChannelNotificationsMailer).to receive(:with).and_return(channel_mailer)
|
||||
allow(channel_mailer).to receive(:facebook_disconnect).and_return(facebook_mailer_response)
|
||||
allow(channel_mailer).to receive(:whatsapp_disconnect).and_return(whatsapp_mailer_response)
|
||||
allow(channel_mailer).to receive(:email_disconnect).and_return(email_mailer_response)
|
||||
allow(channel_mailer).to receive(:instagram_disconnect).and_return(instagram_mailer_response)
|
||||
end
|
||||
|
||||
describe 'prompt_reauthorization!' do
|
||||
|
||||
Reference in New Issue
Block a user