From 01112e5497e1180a83e805ad6be9a3d2df741690 Mon Sep 17 00:00:00 2001 From: Heinrich Lee Yu Date: Tue, 7 Apr 2020 17:15:12 +0800 Subject: [PATCH] Fix Project.for_plan_name to use the correct plan namespaces.plan_id is unused and we should be using the plan from gitlab_subscriptions --- ee/app/models/ee/project.rb | 2 +- ee/spec/finders/ee/projects_finder_spec.rb | 16 +++++++--------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/ee/app/models/ee/project.rb b/ee/app/models/ee/project.rb index a4cbdb95278ebe..27f5b8dcd6d103 100644 --- a/ee/app/models/ee/project.rb +++ b/ee/app/models/ee/project.rb @@ -112,7 +112,7 @@ def lock_for_confirmation!(id) scope :outside_shards, -> (shard_names) { where.not(repository_storage: Array(shard_names)) } scope :verification_failed_repos, -> { joins(:repository_state).merge(ProjectRepositoryState.verification_failed_repos) } scope :verification_failed_wikis, -> { joins(:repository_state).merge(ProjectRepositoryState.verification_failed_wikis) } - scope :for_plan_name, -> (name) { joins(namespace: :plan).where(plans: { name: name }) } + scope :for_plan_name, -> (name) { joins(namespace: { gitlab_subscription: :hosted_plan }).where(plans: { name: name }) } scope :requiring_code_owner_approval, -> { joins(:protected_branches).where(protected_branches: { code_owner_approval_required: true }) } scope :with_active_services, -> { joins(:services).merge(::Service.active) } diff --git a/ee/spec/finders/ee/projects_finder_spec.rb b/ee/spec/finders/ee/projects_finder_spec.rb index 508a0f6835c506..1dfe47262b3501 100644 --- a/ee/spec/finders/ee/projects_finder_spec.rb +++ b/ee/spec/finders/ee/projects_finder_spec.rb @@ -4,18 +4,19 @@ describe ProjectsFinder do describe '#execute' do + let_it_be(:user) { create(:user) } let(:finder) { described_class.new(current_user: user, params: params, project_ids_relation: project_ids_relation) } - let(:user) { create(:user) } subject { finder.execute } describe 'filter by plans' do let(:params) { { plans: plans } } let(:project_ids_relation) { nil } - let!(:gold_project) { create_project(:gold_plan) } - let!(:gold_project2) { create_project(:gold_plan) } - let!(:silver_project) { create_project(:silver_plan) } - let!(:no_plan_project) { create_project(nil) } + + let_it_be(:gold_project) { create_project(:gold_plan) } + let_it_be(:gold_project2) { create_project(:gold_plan) } + let_it_be(:silver_project) { create_project(:silver_plan) } + let_it_be(:no_plan_project) { create_project(nil) } context 'with gold plan' do let(:plans) { ['gold'] } @@ -50,10 +51,7 @@ private def create_project(plan) - namespace = create(:namespace_with_plan, plan: plan) - namespace.update(plan: namespace.gitlab_subscription&.hosted_plan) - - create(:project, :public, namespace: namespace) + create(:project, :public, namespace: create(:namespace_with_plan, plan: plan)) end end end -- GitLab