【问题标题】:Is it possible to disable ActiveAdmin authorization only for the tests?是否可以仅对测试禁用 ActiveAdmin 授权?
【发布时间】:2019-07-10 16:13:13
【问题描述】:

我将为正式测试 ActiveAdmin 页面添加一些请求测试。是否可以禁用这些测试的 ActiveAdmin 授权?

我需要这样的测试配置:

  config.authentication_method = false
  config.current_user_method = false

【问题讨论】:

  • 我有很多未经授权的请求测试,我不想让它们像控制器测试一样

标签: ruby-on-rails rspec activeadmin rspec-rails


【解决方案1】:

以前从未这样做过,但扩展 rspec DSL 可能会起作用

比如把这个模块放到支持文件夹中

module ActiveAdminSpecHelper 
  def without_active_admin_auth
    authentication_method =  ActiveAdmin.application.authentication_method
    current_user_method = ActiveAdmin.application.current_user_method

    yield
  ensure
    ActiveAdmin.application.authentication_method = authentication_method
    ActiveAdmin.application.current_user_method = current_user_method
  end
end

然后

RSpec.configure do |config|

  require 'support/active_admin_spec_helper'
  config.include ActiveAdminSpecHelper
end

之后你就可以像这样使用它了

     it "does something" do
        without_active_admin_auth  do
          expect(something).to works_fine
        end
      end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多