Ich habe eine benutzerdefinierte AutorizationAdapter, Ich mag würde mit RSpec testen:So testen Sie ActiveAdmin AuthorizationAdapter?
class AdminAuthorization < ActiveAdmin::AuthorizationAdapter
def authorized?(_action, _subject = nil)
user.admin?
end
end
Zunächst ich eine benutzerdefinierte Methode verwendet, aber da ich Devise bin mit, mit einem benutzerdefinierten AuthorizationAdapter schien der Weg zu sein, zu gehen.
Wie würden Sie es testen? Ich tought eine Möglichkeit zu testen, ist es eine Anforderung Spezifikation für einen des Controller und Tests für Statuscode & Umleitung, so etwas zu schaffen:
require 'rails_helper'
RSpec.describe 'AdminUsers', type: :request do
describe 'GET /admin_users' do
context 'admin' do
let(:admin_user) { create(:admin_user) }
before { sign_in super_user }
get admin_users_path
expect(response).to have_http_status(200)
end
context 'non admin' do
let(:user) { create(:user) }
before { sign_in user }
it 'redirects to the login page' do
get admin_users_path
expect(response).to have_http_status(302)
expect(response).to redirected_to '/admin/login'
end
end
context 'non logged in user' do
it 'redirects to the login page' do
get admin_users_path
expect(response).to have_http_status(302)
expect(response).to redirected_to '/admin/login'
end
end
end
end
Ich bin nicht sicher, ob dies der richtige Weg zu gehen.