From 007dc6ac15fd8d615bd06dfa8411487a0bbbe3c5 Mon Sep 17 00:00:00 2001 From: Robert Speicher Date: Mon, 29 Jun 2015 15:43:10 -0400 Subject: Add feature specs for a Guest viewing public issues/merge requests Closes internal https://dev.gitlab.org/gitlab/gitlabhq/issues/2155 --- spec/features/issues/guest_views_issue_spec.rb | 34 ++++++++++++++++++++++ .../guest_views_merge_request_spec.rb | 34 ++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 spec/features/issues/guest_views_issue_spec.rb create mode 100644 spec/features/merge_requests/guest_views_merge_request_spec.rb diff --git a/spec/features/issues/guest_views_issue_spec.rb b/spec/features/issues/guest_views_issue_spec.rb new file mode 100644 index 00000000000..1a47c76aef8 --- /dev/null +++ b/spec/features/issues/guest_views_issue_spec.rb @@ -0,0 +1,34 @@ +require 'rails_helper' + +feature 'Guest views issue', feature: true do + scenario 'when issue belongs to public project' do + project = create(:empty_project, :public) + issue = create(:issue, project: project) + + visit_issue(project, issue) + + expect(page).to have_content(issue.title) + end + + scenario 'when issue belongs to internal project' do + project = create(:empty_project, :internal) + issue = create(:issue, project: project) + + visit_issue(project, issue) + + expect(page).not_to have_content(issue.title) + end + + scenario 'when issue belongs to private project' do + project = create(:empty_project, :private) + issue = create(:issue, project: project) + + visit_issue(project, issue) + + expect(page).not_to have_content(issue.title) + end + + def visit_issue(project, issue) + visit namespace_project_issue_path(project.namespace, project, issue) + end +end diff --git a/spec/features/merge_requests/guest_views_merge_request_spec.rb b/spec/features/merge_requests/guest_views_merge_request_spec.rb new file mode 100644 index 00000000000..3484c3578f4 --- /dev/null +++ b/spec/features/merge_requests/guest_views_merge_request_spec.rb @@ -0,0 +1,34 @@ +require 'rails_helper' + +feature 'Guest views merge request', feature: true do + scenario 'when merge request belongs to public project' do + project = create(:project, :public) + merge_request = create(:merge_request, :simple, source_project: project) + + visit_merge_request(project, merge_request) + + expect(page).to have_content(merge_request.title) + end + + scenario 'when merge request belongs to internal project' do + project = create(:project, :internal) + merge_request = create(:merge_request, :simple, source_project: project) + + visit_merge_request(project, merge_request) + + expect(page).not_to have_content(merge_request.title) + end + + scenario 'when merge request belongs to private project' do + project = create(:project, :private) + merge_request = create(:merge_request, :simple, source_project: project) + + visit_merge_request(project, merge_request) + + expect(page).not_to have_content(merge_request.title) + end + + def visit_merge_request(project, merge_request) + visit namespace_project_merge_request_path(project.namespace, project, merge_request) + end +end -- cgit v1.2.1