feat: Enable reauthorization for Facebook (#1286)
This commit is contained in:
@@ -114,6 +114,7 @@ RSpec.describe 'Callbacks API', type: :request do
|
||||
as: :json
|
||||
|
||||
expect(response).to have_http_status(:success)
|
||||
expect(response.body).to include(inbox.id.to_s)
|
||||
end
|
||||
|
||||
it 'returns unprocessable_entity if no page found' do
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
require Rails.root.join 'spec/models/concerns/reauthorizable_spec.rb'
|
||||
|
||||
RSpec.describe Channel::FacebookPage do
|
||||
let(:channel) { create(:channel_facebook_page) }
|
||||
@@ -10,6 +11,10 @@ RSpec.describe Channel::FacebookPage do
|
||||
it { is_expected.to belong_to(:account) }
|
||||
it { is_expected.to have_one(:inbox).dependent(:destroy) }
|
||||
|
||||
describe 'concerns' do
|
||||
it_behaves_like 'reauthorizable'
|
||||
end
|
||||
|
||||
it 'has a valid name' do
|
||||
expect(channel.name).to eq('Facebook')
|
||||
end
|
||||
|
||||
38
spec/models/concerns/reauthorizable_spec.rb
Normal file
38
spec/models/concerns/reauthorizable_spec.rb
Normal file
@@ -0,0 +1,38 @@
|
||||
require 'rails_helper'
|
||||
|
||||
shared_examples_for 'reauthorizable' do
|
||||
let(:model) { described_class } # the class that includes the concern
|
||||
|
||||
it 'authorization_error!' do
|
||||
obj = FactoryBot.create(model.to_s.underscore.tr('/', '_').to_sym)
|
||||
expect(obj.authorization_error_count).to eq 0
|
||||
|
||||
obj.authorization_error!
|
||||
|
||||
expect(obj.authorization_error_count).to eq 1
|
||||
end
|
||||
|
||||
it 'prompt_reauthorization!' do
|
||||
obj = FactoryBot.create(model.to_s.underscore.tr('/', '_').to_sym)
|
||||
expect(obj.reauthorization_required?).to eq false
|
||||
|
||||
obj.prompt_reauthorization!
|
||||
|
||||
expect(obj.reauthorization_required?).to eq true
|
||||
end
|
||||
|
||||
it 'reauthorized!' do
|
||||
obj = FactoryBot.create(model.to_s.underscore.tr('/', '_').to_sym)
|
||||
# setting up the object with the errors to validate its cleared on action
|
||||
obj.authorization_error!
|
||||
obj.prompt_reauthorization!
|
||||
expect(obj.reauthorization_required?).to eq true
|
||||
expect(obj.authorization_error_count).not_to eq 0
|
||||
|
||||
obj.reauthorized!
|
||||
|
||||
# authorization errors are reset
|
||||
expect(obj.authorization_error_count).to eq 0
|
||||
expect(obj.reauthorization_required?).to eq false
|
||||
end
|
||||
end
|
||||
@@ -5,7 +5,7 @@ describe Facebook::SendOnFacebookService do
|
||||
|
||||
before do
|
||||
allow(Facebook::Messenger::Subscriptions).to receive(:subscribe).and_return(true)
|
||||
allow(bot).to receive(:deliver)
|
||||
allow(bot).to receive(:deliver).and_return({ recipient_id: '1008372609250235', message_id: 'mid.1456970487936:c34767dfe57ee6e339' }.to_json)
|
||||
create(:message, message_type: :incoming, inbox: facebook_inbox, account: account, conversation: conversation)
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user