refactor: simplify error handling
This commit is contained in:
@@ -73,7 +73,20 @@ RSpec.describe 'Google::CallbacksController', type: :request do
|
||||
expect(inbox.name).to eq email.split('@').first.parameterize.titleize
|
||||
end
|
||||
|
||||
it 'redirects to google app in case of error' do
|
||||
it 'redirects to custom error URL when insufficient scopes are granted' do
|
||||
stub_request(:post, 'https://accounts.google.com/o/oauth2/token')
|
||||
.with(body: { 'code' => code, 'grant_type' => 'authorization_code',
|
||||
'redirect_uri' => "#{ENV.fetch('FRONTEND_URL', 'http://localhost:3000')}/google/callback" })
|
||||
.to_return(status: 200, body: response_body_insufficient_scopes.to_json, headers: { 'Content-Type' => 'application/json' })
|
||||
|
||||
get google_callback_url, params: { code: code }
|
||||
|
||||
expect(response).to redirect_to(/#{Regexp.escape("#{ENV.fetch('FRONTEND_URL', 'http://localhost:3000')}/app/accounts/#{account.id}/settings/inboxes/new/email")}/)
|
||||
expect(response.location).to include('error=')
|
||||
expect(Redis::Alfred.get(cache_key).to_i).to eq account.id
|
||||
end
|
||||
|
||||
it 'redirects to custom error URL in case of OAuth error' do
|
||||
stub_request(:post, 'https://accounts.google.com/o/oauth2/token')
|
||||
.with(body: { 'code' => code, 'grant_type' => 'authorization_code',
|
||||
'redirect_uri' => "#{ENV.fetch('FRONTEND_URL', 'http://localhost:3000')}/google/callback" })
|
||||
@@ -81,7 +94,8 @@ RSpec.describe 'Google::CallbacksController', type: :request do
|
||||
|
||||
get google_callback_url, params: { code: code }
|
||||
|
||||
expect(response).to redirect_to '/'
|
||||
expect(response).to redirect_to(/#{Regexp.escape("#{ENV.fetch('FRONTEND_URL', 'http://localhost:3000')}/app/accounts/#{account.id}/settings/inboxes/new/email")}/)
|
||||
expect(response.location).to include('error=')
|
||||
expect(Redis::Alfred.get(cache_key).to_i).to eq account.id
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user