55 lines
1.4 KiB
Ruby
55 lines
1.4 KiB
Ruby
|
require 'spec_helper'
|
||
|
|
||
|
describe Gitlab::OAuth::AuthHash do
|
||
|
let(:auth_hash) do
|
||
|
Gitlab::OAuth::AuthHash.new(double({
|
||
|
provider: 'twitter',
|
||
|
uid: uid,
|
||
|
info: double(info_hash)
|
||
|
}))
|
||
|
end
|
||
|
let(:uid) { 'my-uid' }
|
||
|
let(:email) { 'my-email@example.com' }
|
||
|
let(:nickname) { 'my-nickname' }
|
||
|
let(:info_hash) {
|
||
|
{
|
||
|
email: email,
|
||
|
nickname: nickname,
|
||
|
name: 'John',
|
||
|
first_name: "John",
|
||
|
last_name: "Who"
|
||
|
}
|
||
|
}
|
||
|
|
||
|
context "defaults" do
|
||
|
it { expect(auth_hash.provider).to eql 'twitter' }
|
||
|
it { expect(auth_hash.uid).to eql uid }
|
||
|
it { expect(auth_hash.email).to eql email }
|
||
|
it { expect(auth_hash.username).to eql nickname }
|
||
|
it { expect(auth_hash.name).to eql "John" }
|
||
|
it { expect(auth_hash.password).to_not be_empty }
|
||
|
end
|
||
|
|
||
|
context "email not provided" do
|
||
|
before { info_hash.delete(:email) }
|
||
|
it "generates a temp email" do
|
||
|
expect( auth_hash.email).to start_with('temp-email-for-oauth')
|
||
|
end
|
||
|
end
|
||
|
|
||
|
context "username not provided" do
|
||
|
before { info_hash.delete(:nickname) }
|
||
|
|
||
|
it "takes the first part of the email as username" do
|
||
|
expect( auth_hash.username ).to eql "my-email"
|
||
|
end
|
||
|
end
|
||
|
|
||
|
context "name not provided" do
|
||
|
before { info_hash.delete(:name) }
|
||
|
|
||
|
it "concats first and lastname as the name" do
|
||
|
expect( auth_hash.name ).to eql "John Who"
|
||
|
end
|
||
|
end
|
||
|
end
|