feat: Enable reauthorization for Facebook (#1286)

This commit is contained in:
Sojan Jose
2020-09-30 01:12:32 +05:30
committed by GitHub
parent 99ca54fd3c
commit b862817b29
20 changed files with 281 additions and 15 deletions

View File

@@ -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

View 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