Sha256: 4e260e56a39796e4933e62e5199ed476bd95536c5ad339a1b068b8ba6ab8ddd3

Contents?: true

Size: 1.57 KB

Versions: 1

Compression:

Stored size: 1.57 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!(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

1 entries across 1 versions & 1 rubygems

Version Path
gds-sso-15.0.0 spec/unit/user_spec.rb