summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Bennett <lbennett@gitlab.com>2018-12-03 15:05:29 +0000
committerLuke Bennett <lbennett@gitlab.com>2018-12-05 22:46:19 +0000
commit82ea1129e72230cf8991c05c47c7fe4dff24122d (patch)
tree1fb8d5ee727d0d2dc8031ef66b3ca79e518fe6ed
parent2b2f93698b4f479d673067caa384b604732852e4 (diff)
downloadgitlab-ce-ce-8684-show_gold_trial-fails-when-not-logged-in.tar.gz
Fix error from gold trial callout on explore page when not logged ince-8684-show_gold_trial-fails-when-not-logged-in
Check that there is a current user before checking if the current user has a namespace with gold or a trial
-rw-r--r--ee/changelogs/unreleased/8684-show_gold_trial-fails-when-not-logged-in.yml5
-rw-r--r--spec/features/dashboard/root_explore_spec.rb31
-rw-r--r--spec/features/explore/user_explores_projects_spec.rb18
-rw-r--r--spec/support/shared_examples/project_list_shared_examples.rb17
4 files changed, 53 insertions, 18 deletions
diff --git a/ee/changelogs/unreleased/8684-show_gold_trial-fails-when-not-logged-in.yml b/ee/changelogs/unreleased/8684-show_gold_trial-fails-when-not-logged-in.yml
new file mode 100644
index 00000000000..37ed475518b
--- /dev/null
+++ b/ee/changelogs/unreleased/8684-show_gold_trial-fails-when-not-logged-in.yml
@@ -0,0 +1,5 @@
+---
+title: Fix error on explore page when logged out due to gold trial callout
+merge_request: 8674
+author:
+type: fixed
diff --git a/spec/features/dashboard/root_explore_spec.rb b/spec/features/dashboard/root_explore_spec.rb
new file mode 100644
index 00000000000..1f1b85c61c2
--- /dev/null
+++ b/spec/features/dashboard/root_explore_spec.rb
@@ -0,0 +1,31 @@
+require 'spec_helper'
+
+describe 'Root explore' do
+ set(:public_project) { create(:project, :public) }
+ set(:archived_project) { create(:project, :archived) }
+ set(:internal_project) { create(:project, :internal) }
+ set(:private_project) { create(:project, :private) }
+
+ before do
+ allow(Gitlab).to receive(:com?).and_return(true)
+ end
+
+ context 'when logged in' do
+ set(:user) { create(:user) }
+
+ before do
+ sign_in(user)
+ visit explore_projects_path
+ end
+
+ include_examples 'shows public and internal projects'
+ end
+
+ context 'when not logged in' do
+ before do
+ visit explore_projects_path
+ end
+
+ include_examples 'shows public projects'
+ end
+end
diff --git a/spec/features/explore/user_explores_projects_spec.rb b/spec/features/explore/user_explores_projects_spec.rb
index 6ac9497b024..c724c3d17f8 100644
--- a/spec/features/explore/user_explores_projects_spec.rb
+++ b/spec/features/explore/user_explores_projects_spec.rb
@@ -6,24 +6,6 @@ describe 'User explores projects' do
set(:private_project) { create(:project, :private) }
set(:public_project) { create(:project, :public) }
- shared_examples_for 'shows public projects' do
- it 'shows projects' do
- expect(page).to have_content(public_project.title)
- expect(page).not_to have_content(internal_project.title)
- expect(page).not_to have_content(private_project.title)
- expect(page).not_to have_content(archived_project.title)
- end
- end
-
- shared_examples_for 'shows public and internal projects' do
- it 'shows projects' do
- expect(page).to have_content(public_project.title)
- expect(page).to have_content(internal_project.title)
- expect(page).not_to have_content(private_project.title)
- expect(page).not_to have_content(archived_project.title)
- end
- end
-
context 'when not signed in' do
context 'when viewing public projects' do
before do
diff --git a/spec/support/shared_examples/project_list_shared_examples.rb b/spec/support/shared_examples/project_list_shared_examples.rb
new file mode 100644
index 00000000000..24bd3a324c4
--- /dev/null
+++ b/spec/support/shared_examples/project_list_shared_examples.rb
@@ -0,0 +1,17 @@
+shared_examples 'shows public projects' do
+ it 'shows projects' do
+ expect(page).to have_content(public_project.title)
+ expect(page).not_to have_content(internal_project.title)
+ expect(page).not_to have_content(private_project.title)
+ expect(page).not_to have_content(archived_project.title)
+ end
+end
+
+shared_examples 'shows public and internal projects' do
+ it 'shows projects' do
+ expect(page).to have_content(public_project.title)
+ expect(page).to have_content(internal_project.title)
+ expect(page).not_to have_content(private_project.title)
+ expect(page).not_to have_content(archived_project.title)
+ end
+end