Sha256: 9ab581f759cad90b7b3781566ccec16d64357387cebb243164d2bd0f3fa15963

Contents?: true

Size: 1.58 KB

Versions: 14

Compression:

Stored size: 1.58 KB

Contents

require 'spec_helper'
require 'gds-sso/user'
require 'gds-sso/lint/user_spec'

require 'ostruct'

describe GDS::SSO::User do
  before :each do
    @auth_hash = {
      'provider' => 'gds',
      'uid' => 'abcde',
      'credentials' => {'token' => 'abcdefg', 'secret' => 'abcdefg'},
      'info' => {'name' => 'Matt Patterson', 'email' => 'matt@alphagov.co.uk'},
      'extra' => {
        'user' => {
          'permissions' => [], 'organisation_slug' => nil, "organisation_content_id" => nil, 'disabled' => false
        }
      }
    }
  end

  it "should extract the user params from the oauth hash" do
    expected = {'uid' => 'abcde',
      'name' => 'Matt Patterson',
      'email' => 'matt@alphagov.co.uk',
      "permissions" => [],
      "organisation_slug" => nil,
      "organisation_content_id" => nil,
      'disabled' => false,
    }
    expect(GDS::SSO::User.user_params_from_auth_hash(@auth_hash)).to eq(expected)
  end

  context "making sure that the lint spec is valid" do
    class TestUser < OpenStruct
      include GDS::SSO::User

      def self.where(opts)
        []
      end

      def self.create!(options, scope = {})
        new(options)
      end

      def update_attribute(key, value)
        send("#{key}=".to_sym, value)
      end

      def update_attributes(options)
        options.each do |key, value|
          update_attribute(key, value)
        end
      end

      def remotely_signed_out?
        remotely_signed_out
      end

      def disabled?
        disabled
      end
    end

    let(:described_class) { TestUser }
    it_behaves_like "a gds-sso user class"
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
gds-sso-14.3.0 spec/unit/user_spec.rb
gds-sso-14.2.0 spec/unit/user_spec.rb
gds-sso-14.1.1 spec/unit/user_spec.rb
gds-sso-14.1.0 spec/unit/user_spec.rb
gds-sso-14.0.0 spec/unit/user_spec.rb
gds-sso-13.6.0 spec/unit/user_spec.rb
gds-sso-13.5.1 spec/unit/user_spec.rb
gds-sso-13.5.0 spec/unit/user_spec.rb
gds-sso-13.4.0 spec/unit/user_spec.rb
gds-sso-13.3.0 spec/unit/user_spec.rb
gds-sso-13.2.1 spec/unit/user_spec.rb
gds-sso-13.2.0 spec/unit/user_spec.rb
gds-sso-13.1.0 spec/unit/user_spec.rb
gds-sso-13.0.0 spec/unit/user_spec.rb