diff --git a/app/finders/personal_projects_finder.rb b/app/finders/personal_projects_finder.rb index a01465a64d200f74300cefede1b822bc1b09589c..3ebc90432b03d5116cdd1bdd7576f945da42c2c7 100644 --- a/app/finders/personal_projects_finder.rb +++ b/app/finders/personal_projects_finder.rb @@ -22,7 +22,7 @@ def execute(current_user = nil) segments = all_projects(current_user) - find_union(segments, Project).with_namespace.order_updated_desc + find_union(segments, Project).with_namespace.sorted_by_activity end private diff --git a/spec/features/users/user_browses_projects_on_user_page_spec.rb b/spec/features/users/user_browses_projects_on_user_page_spec.rb index 039b1bbe5b1e10a0a9d665e071db4e4a862bf5c6..addf9bbdcb1dd9ebcebff3f837b177b61e4c33dc 100644 --- a/spec/features/users/user_browses_projects_on_user_page_spec.rb +++ b/spec/features/users/user_browses_projects_on_user_page_spec.rb @@ -42,8 +42,8 @@ def click_nav_link(name) end it 'paginates projects', :js do - project = create(:project, namespace: user.namespace, updated_at: 2.minutes.since) - project2 = create(:project, namespace: user.namespace, updated_at: 1.minute.since) + project = create(:project, namespace: user.namespace, last_activity_at: 2.minutes.since) + project2 = create(:project, namespace: user.namespace, last_activity_at: 1.minute.since) allow(Project).to receive(:default_per_page).and_return(1) sign_in(user) diff --git a/spec/finders/personal_projects_finder_spec.rb b/spec/finders/personal_projects_finder_spec.rb index af3b5bf894b44da84d576fba970d070274eb1286..92539529e97c01a1b1b854e03e1d8481efacb9ef 100644 --- a/spec/finders/personal_projects_finder_spec.rb +++ b/spec/finders/personal_projects_finder_spec.rb @@ -2,29 +2,29 @@ require 'spec_helper' -RSpec.describe PersonalProjectsFinder do +RSpec.describe PersonalProjectsFinder, feature_category: :groups_and_projects do let_it_be(:source_user) { create(:user) } let_it_be(:current_user) { create(:user) } let_it_be(:admin) { create(:admin) } let(:finder) { described_class.new(source_user) } - let!(:public_project) do - create(:project, :public, namespace: source_user.namespace, updated_at: 1.hour.ago, path: 'pblc') + let_it_be(:public_project) do + create(:project, :public, namespace: source_user.namespace, last_activity_at: 1.year.ago, path: 'pblc') end - let!(:private_project_shared) do - create(:project, :private, namespace: source_user.namespace, updated_at: 3.hours.ago, path: 'mepmep') + let_it_be(:private_project_shared) do + create(:project, :private, namespace: source_user.namespace, last_activity_at: 2.hours.ago, path: 'mepmep') end - let!(:internal_project) do - create(:project, :internal, namespace: source_user.namespace, updated_at: 2.hours.ago, path: 'C') + let_it_be(:internal_project) do + create(:project, :internal, namespace: source_user.namespace, last_activity_at: 3.hours.ago, path: 'C') end - let!(:private_project_self) do - create(:project, :private, namespace: source_user.namespace, updated_at: 3.hours.ago, path: 'D') + let_it_be(:private_project_self) do + create(:project, :private, namespace: source_user.namespace, last_activity_at: 4.hours.ago, path: 'D') end - before do + before_all do private_project_shared.add_developer(current_user) end @@ -38,7 +38,7 @@ context 'normal user' do subject { finder.execute(current_user) } - it { is_expected.to match_array([public_project, internal_project, private_project_shared]) } + it { is_expected.to eq([private_project_shared, internal_project, public_project]) } end context 'external' do @@ -48,13 +48,13 @@ current_user.update!(external: true) end - it { is_expected.to match_array([public_project, private_project_shared]) } + it { is_expected.to eq([private_project_shared, public_project]) } end context 'and searching with an admin user', :enable_admin_mode do subject { finder.execute(admin) } - it { is_expected.to match_array([public_project, internal_project, private_project_self, private_project_shared]) } + it { is_expected.to eq([private_project_shared, internal_project, private_project_self, public_project]) } end end end