debian-mirror-gitlab/spec/lib/gitlab/jira_import/user_mapper_spec.rb
2020-05-24 23:13:21 +05:30

81 lines
2.1 KiB
Ruby

# frozen_string_literal: true
require 'spec_helper'
describe Gitlab::JiraImport::UserMapper do
let_it_be(:group) { create(:group) }
let_it_be(:project) { create(:project, group: group) }
let_it_be(:user) { create(:user, email: 'user@example.com') }
let_it_be(:email) { create(:email, user: user, email: 'second_email@example.com', confirmed_at: nil) }
let(:jira_user) { { 'acountId' => '1a2b', 'emailAddress' => 'user@example.com' } }
describe '#execute' do
subject { described_class.new(project, jira_user).execute }
context 'when jira_user is nil' do
let(:jira_user) { nil }
it 'returns nil' do
expect(subject).to be_nil
end
end
context 'when Gitlab user is not found by email' do
let(:jira_user) { { 'acountId' => '1a2b', 'emailAddress' => 'other@example.com' } }
it 'returns nil' do
expect(subject).to be_nil
end
end
context 'when jira_user emailAddress is nil' do
let(:jira_user) { { 'acountId' => '1a2b', 'emailAddress' => nil } }
it 'returns nil' do
expect(subject).to be_nil
end
end
context 'when jira_user emailAddress key is missing' do
let(:jira_user) { { 'acountId' => '1a2b' } }
it 'returns nil' do
expect(subject).to be_nil
end
end
context 'when found user is not a project member' do
it 'returns nil' do
expect(subject).to be_nil
end
end
context 'when found user is a project member' do
it 'returns the found user' do
project.add_developer(user)
expect(subject).to eq(user)
end
end
context 'when user found by unconfirmd secondary address is a project member' do
let(:jira_user) { { 'acountId' => '1a2b', 'emailAddress' => 'second_email@example.com' } }
it 'returns the found user' do
project.add_developer(user)
expect(subject).to eq(user)
end
end
context 'when user is a group member' do
it 'returns the found user' do
group.add_developer(user)
expect(subject).to eq(user)
end
end
end
end