Sha256: a04a6d7282474c052e890d7f459ffb8bc4d907473827e11e724e4c0673b3202f

Contents?: true

Size: 1.29 KB

Versions: 66

Compression:

Stored size: 1.29 KB

Contents

module Pageflow
  module Dom
    module Admin
      # @api private
      class Page < Domino
        selector 'body.active_admin'

        attribute :title

        def has_signed_in_user?
          page.has_css?('#current_user')
        end

        def self.sign_out
          visit '/admin/logout'
        end

        def self.sign_in(options)
          visit '/admin/login'
          SignInForm.first.submit_with(options)
        end

        def self.sign_in_as(role, options = {})
          email = "#{role}@example.com"
          password = '!Pass123'
          user = FactoryBot.create(:user, options.reverse_merge(email: email, password: password))

          if role.to_sym == :admin
            user.admin = true
            user.save
          else
            FactoryBot.create(:membership, user: user, role: role, entity: options[:on])
          end

          visit '/admin/login'
          SignInForm.find!.submit_with(email: email, password: password)

          unless page.has_content?(I18n.t('devise.sessions.signed_in'))
            raise 'Expected to find sign in flash message.'
          end

          user
        end

        def self.accessible_with?(options)
          sign_out
          sign_in(options)

          Page.first.has_signed_in_user?
        end
      end
    end
  end
end

Version data entries

66 entries across 66 versions & 1 rubygems

Version Path
pageflow-support-17.0.4 pageflow/dom/admin/page.rb
pageflow-support-17.0.3 pageflow/dom/admin/page.rb
pageflow-support-17.0.2 pageflow/dom/admin/page.rb
pageflow-support-17.0.1 pageflow/dom/admin/page.rb
pageflow-support-17.0.0 pageflow/dom/admin/page.rb
pageflow-support-16.2.0 pageflow/dom/admin/page.rb
pageflow-support-16.1.0 pageflow/dom/admin/page.rb
pageflow-support-16.0.0 pageflow/dom/admin/page.rb
pageflow-support-15.8.0 pageflow/dom/admin/page.rb
pageflow-support-14.5.2 pageflow/dom/admin/page.rb
pageflow-support-15.7.1 pageflow/dom/admin/page.rb
pageflow-support-15.7.0 pageflow/dom/admin/page.rb
pageflow-support-15.6.1 pageflow/dom/admin/page.rb
pageflow-support-15.6.0 pageflow/dom/admin/page.rb
pageflow-support-15.5.0 pageflow/dom/admin/page.rb
pageflow-support-15.4.0 pageflow/dom/admin/page.rb
pageflow-support-15.3.0 pageflow/dom/admin/page.rb
pageflow-support-15.2.2 pageflow/dom/admin/page.rb
pageflow-support-15.2.1 pageflow/dom/admin/page.rb
pageflow-support-15.2.0 pageflow/dom/admin/page.rb