Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCamil Staps <info@camilstaps.nl>2019-02-05 14:49:58 +0300
committerCamil Staps <info@camilstaps.nl>2019-08-07 21:49:17 +0300
commit3123be9fbbc494e45a638f21ed3dcff942cb97c4 (patch)
tree02442921724bc3238b43557ad7e24eb65a433000 /spec/finders/users_star_projects_finder_spec.rb
parent99bb207ef14d12fe59e23fd70e219ed5e166470b (diff)
Add tests for starrers views
Diffstat (limited to 'spec/finders/users_star_projects_finder_spec.rb')
-rw-r--r--spec/finders/users_star_projects_finder_spec.rb40
1 files changed, 40 insertions, 0 deletions
diff --git a/spec/finders/users_star_projects_finder_spec.rb b/spec/finders/users_star_projects_finder_spec.rb
new file mode 100644
index 00000000000..4c0aa3f8f77
--- /dev/null
+++ b/spec/finders/users_star_projects_finder_spec.rb
@@ -0,0 +1,40 @@
+require 'spec_helper'
+
+describe UsersStarProjectsFinder do
+ let(:project) { create(:project, :public, :empty_repo) }
+
+ let(:user) { create(:user) }
+ let(:private_user) { create(:user, private_profile: true) }
+ let(:other_user) { create(:user) }
+
+ before do
+ user.toggle_star(project)
+ private_user.toggle_star(project)
+ end
+
+ describe '#execute' do
+ let(:finder) { described_class.new(project, {}, current_user: current_user) }
+ let(:public_stars) { user.users_star_projects }
+ let(:private_stars) { private_user.users_star_projects }
+
+ subject { finder.execute }
+
+ describe 'as same user' do
+ let(:current_user) { private_user }
+
+ it { is_expected.to eq(private_stars + public_stars) }
+ end
+
+ describe 'as other user' do
+ let(:current_user) { other_user }
+
+ it { is_expected.to eq(public_stars) }
+ end
+
+ describe 'as no user' do
+ let(:current_user) { nil }
+
+ it { is_expected.to eq(public_stars) }
+ end
+ end
+end