summaryrefslogtreecommitdiff
path: root/spec/views/projects/issues/_issue.html.haml_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/views/projects/issues/_issue.html.haml_spec.rb')
-rw-r--r--spec/views/projects/issues/_issue.html.haml_spec.rb53
1 files changed, 53 insertions, 0 deletions
diff --git a/spec/views/projects/issues/_issue.html.haml_spec.rb b/spec/views/projects/issues/_issue.html.haml_spec.rb
index 29bef557304..e4485f253b6 100644
--- a/spec/views/projects/issues/_issue.html.haml_spec.rb
+++ b/spec/views/projects/issues/_issue.html.haml_spec.rb
@@ -37,6 +37,59 @@ RSpec.describe 'projects/issues/_issue.html.haml' do
end
end
+ context 'when issue is service desk issue' do
+ let_it_be(:email) { 'user@example.com' }
+ let_it_be(:obfuscated_email) { 'us*****@e*****.c**' }
+ let_it_be(:issue) { create(:issue, author: User.support_bot, service_desk_reply_to: email) }
+
+ context 'with anonymous user' do
+ it 'obfuscates service_desk_reply_to email for anonymous user' do
+ expect(rendered).to have_content(obfuscated_email)
+ end
+ end
+
+ context 'with signed in user' do
+ let_it_be(:user) { create(:user) }
+
+ before do
+ allow(view).to receive(:current_user).and_return(user)
+ allow(view).to receive(:issue).and_return(issue)
+ end
+
+ context 'when user has no role in project' do
+ it 'obfuscates service_desk_reply_to email' do
+ render
+
+ expect(rendered).to have_content(obfuscated_email)
+ end
+ end
+
+ context 'when user has guest role in project' do
+ before do
+ issue.project.add_guest(user)
+ end
+
+ it 'obfuscates service_desk_reply_to email' do
+ render
+
+ expect(rendered).to have_content(obfuscated_email)
+ end
+ end
+
+ context 'when user has (at least) reporter role in project' do
+ before do
+ issue.project.add_reporter(user)
+ end
+
+ it 'shows full service_desk_reply_to email' do
+ render
+
+ expect(rendered).to have_content(email)
+ end
+ end
+ end
+ end
+
def format_timestamp(time)
l(time, format: "%b %d, %Y")
end