summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-10-27 10:15:45 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2021-10-27 10:15:45 +0000
commit14b92217e768aa4f3ce2d8b30f2c2acbdfdd8f6a (patch)
treea0bfb2e384a89525c68c09f54fa6b1b9005e4d93 /spec
parente8ae58a7c189407375b3f575b7aa8fb17a1e4f99 (diff)
downloadgitlab-ce-14b92217e768aa4f3ce2d8b30f2c2acbdfdd8f6a.tar.gz
Add latest changes from gitlab-org/security/gitlab@14-4-stable-ee
Diffstat (limited to 'spec')
-rw-r--r--spec/factories/users.rb4
-rw-r--r--spec/lib/gitlab/data_builder/build_spec.rb2
-rw-r--r--spec/lib/gitlab/data_builder/pipeline_spec.rb4
-rw-r--r--spec/models/ci/pipeline_spec.rb2
-rw-r--r--spec/models/user_spec.rb25
5 files changed, 27 insertions, 10 deletions
diff --git a/spec/factories/users.rb b/spec/factories/users.rb
index 325f62f6028..8aa9654956e 100644
--- a/spec/factories/users.rb
+++ b/spec/factories/users.rb
@@ -15,6 +15,10 @@ FactoryBot.define do
admin { true }
end
+ trait :public_email do
+ public_email { email }
+ end
+
trait :blocked do
after(:build) { |user, _| user.block! }
end
diff --git a/spec/lib/gitlab/data_builder/build_spec.rb b/spec/lib/gitlab/data_builder/build_spec.rb
index 325fdb90929..9cee0802e87 100644
--- a/spec/lib/gitlab/data_builder/build_spec.rb
+++ b/spec/lib/gitlab/data_builder/build_spec.rb
@@ -5,7 +5,7 @@ require 'spec_helper'
RSpec.describe Gitlab::DataBuilder::Build do
let!(:tag_names) { %w(tag-1 tag-2) }
let(:runner) { create(:ci_runner, :instance, tag_list: tag_names.map { |n| ActsAsTaggableOn::Tag.create!(name: n)}) }
- let(:user) { create(:user) }
+ let(:user) { create(:user, :public_email) }
let(:build) { create(:ci_build, :running, runner: runner, user: user) }
describe '.build' do
diff --git a/spec/lib/gitlab/data_builder/pipeline_spec.rb b/spec/lib/gitlab/data_builder/pipeline_spec.rb
index 0e574c7aa84..8b57da8e60b 100644
--- a/spec/lib/gitlab/data_builder/pipeline_spec.rb
+++ b/spec/lib/gitlab/data_builder/pipeline_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
RSpec.describe Gitlab::DataBuilder::Pipeline do
- let_it_be(:user) { create(:user) }
+ let_it_be(:user) { create(:user, :public_email) }
let_it_be(:project) { create(:project, :repository) }
let_it_be_with_reload(:pipeline) do
@@ -46,7 +46,7 @@ RSpec.describe Gitlab::DataBuilder::Pipeline do
name: user.name,
username: user.username,
avatar_url: user.avatar_url(only_path: false),
- email: user.email
+ email: user.public_email
})
end
diff --git a/spec/models/ci/pipeline_spec.rb b/spec/models/ci/pipeline_spec.rb
index 98b55ccb76b..5f3aad0ab24 100644
--- a/spec/models/ci/pipeline_spec.rb
+++ b/spec/models/ci/pipeline_spec.rb
@@ -7,7 +7,7 @@ RSpec.describe Ci::Pipeline, :mailer, factory_default: :keep do
include StubRequests
include Ci::SourcePipelineHelpers
- let_it_be(:user) { create(:user) }
+ let_it_be(:user) { create(:user, :public_email) }
let_it_be(:namespace) { create_default(:namespace).freeze }
let_it_be(:project) { create_default(:project, :repository).freeze }
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index db805a804c8..21c5aea514a 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -5679,16 +5679,29 @@ RSpec.describe User do
end
describe '#hook_attrs' do
- it 'includes id, name, username, avatar_url, and email' do
- user = create(:user)
- user_attributes = {
+ let(:user) { create(:user) }
+ let(:user_attributes) do
+ {
id: user.id,
name: user.name,
username: user.username,
- avatar_url: user.avatar_url(only_path: false),
- email: user.email
+ avatar_url: user.avatar_url(only_path: false)
}
- expect(user.hook_attrs).to eq(user_attributes)
+ end
+
+ context 'with a public email' do
+ it 'includes id, name, username, avatar_url, and email' do
+ user.public_email = "hello@hello.com"
+ user_attributes[:email] = user.public_email
+ expect(user.hook_attrs).to eq(user_attributes)
+ end
+ end
+
+ context 'without a public email' do
+ it "does not include email if user's email is private" do
+ user_attributes[:email] = "[REDACTED]"
+ expect(user.hook_attrs).to eq(user_attributes)
+ end
end
end