Module: ActiveAdmin::Oidc::RSpecSupport

Defined in:
lib/activeadmin/oidc/test_helpers.rb

Overview

RSpec support for oidc_mode tag filtering. Require this file in spec_helper or rails_helper to auto-configure:

require "activeadmin/oidc/test_helpers"

Specs tagged ‘oidc_mode: true` will be skipped unless the AdminUser model has :omniauthable loaded. Set CI_RUN_OIDC=true in your CI job to run only OIDC-tagged specs.

Class Method Summary collapse

Class Method Details

.install!Object



76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# File 'lib/activeadmin/oidc/test_helpers.rb', line 76

def self.install!
  return unless defined?(RSpec)

  RSpec.configure do |config|
    config.include TestHelpers, oidc_mode: true
    config.after(:each, :oidc_mode) { reset_oidc_stubs }

    config.before(:each, :oidc_mode) do
      admin_class = ActiveAdmin::Oidc.config.admin_user_class
      klass = admin_class.is_a?(String) ? admin_class.safe_constantize : admin_class
      unless klass.respond_to?(:devise_modules) && klass.devise_modules.include?(:omniauthable)
        skip 'requires OIDC mode (run with config/oidc.yml in place and CI_RUN_OIDC=true)'
      end
    end

    if ENV['CI_RUN_OIDC'].present?
      config.filter_run_including oidc_mode: true
    else
      config.filter_run_excluding oidc_mode: true
    end
  end
end