From 004e9ffc0a0a9224c572457f959b1680f4c85726 Mon Sep 17 00:00:00 2001 From: Ammar Alakkad <aalakkad@gitlab.com> Date: Tue, 1 Oct 2024 07:32:55 +0000 Subject: [PATCH] Mass renaming of variables to contain _count suffix The variables passed to frontend didn't include this suffix since the members tab is kind of dynamic and would require more changes to accommodate this renaming. --- app/helpers/groups/group_members_helper.rb | 2 +- .../projects/project_members_helper.rb | 2 +- .../groups/group_members/index.html.haml | 2 +- .../projects/project_members/index.html.haml | 2 +- .../members/promotion_requests/store/state.js | 4 +-- .../ee/groups/group_members_controller.rb | 7 +++-- .../ee/projects/project_members_controller.rb | 7 +++-- .../helpers/ee/groups/group_members_helper.rb | 4 +-- ee/app/helpers/ee/members_helper.rb | 14 ---------- .../ee/projects/project_members_helper.rb | 4 +-- .../promotion_requests/store/state_spec.js | 2 +- .../ee/groups/group_members_helper_spec.rb | 8 +++--- .../projects/project_members_helper_spec.rb | 10 +++---- .../groups/group_members_controller_spec.rb | 25 +++++------------- .../project_members_controller_spec.rb | 26 +++++-------------- .../promotion_request_shared_examples.rb | 19 ++++++-------- .../groups/group_members_helper_spec.rb | 4 +-- .../projects/project_members_helper_spec.rb | 4 +-- 18 files changed, 50 insertions(+), 96 deletions(-) diff --git a/app/helpers/groups/group_members_helper.rb b/app/helpers/groups/group_members_helper.rb index 0fb7dc3805a60..1bba9d789f5cf 100644 --- a/app/helpers/groups/group_members_helper.rb +++ b/app/helpers/groups/group_members_helper.rb @@ -14,7 +14,7 @@ def group_members_app_data( banned:, include_relations:, search:, - pending_members:, + pending_members_count:, placeholder_users: ) { diff --git a/app/helpers/projects/project_members_helper.rb b/app/helpers/projects/project_members_helper.rb index 8909edab055a3..c70a18992dab3 100644 --- a/app/helpers/projects/project_members_helper.rb +++ b/app/helpers/projects/project_members_helper.rb @@ -19,7 +19,7 @@ def project_member_header_subtext(project) private def project_members_app_data( - project, members:, invited:, access_requests:, include_relations:, search:, pending_members:) # rubocop:disable Lint/UnusedMethodArgument -- Argument used in EE + project, members:, invited:, access_requests:, include_relations:, search:, pending_members_count:) # rubocop:disable Lint/UnusedMethodArgument -- Argument used in EE { user: project_members_list_data(project, members, { param_name: :page, params: { search_groups: nil } }), group: project_group_links_list_data(project, include_relations, search), diff --git a/app/views/groups/group_members/index.html.haml b/app/views/groups/group_members/index.html.haml index 87ba30b88353c..9ff3f0421e42f 100644 --- a/app/views/groups/group_members/index.html.haml +++ b/app/views/groups/group_members/index.html.haml @@ -32,7 +32,7 @@ banned: @banned || [], include_relations: @include_relations, search: params[:search_groups], - pending_members: @pending_promotion_members, + pending_members_count: @pending_promotion_members_count, placeholder_users: @placeholder_users_count ).to_json } } = gl_loading_icon(css_class: 'gl-my-5', size: 'md') diff --git a/app/views/projects/project_members/index.html.haml b/app/views/projects/project_members/index.html.haml index 8a4e9de95e139..f0c38b19cfe4f 100644 --- a/app/views/projects/project_members/index.html.haml +++ b/app/views/projects/project_members/index.html.haml @@ -46,5 +46,5 @@ access_requests: @requesters, include_relations: @include_relations, search: params[:search_groups], - pending_members: @pending_promotion_members) } } + pending_members_count: @pending_promotion_members_count) } } = gl_loading_icon(css_class: 'gl-my-5', size: 'md') diff --git a/ee/app/assets/javascripts/members/promotion_requests/store/state.js b/ee/app/assets/javascripts/members/promotion_requests/store/state.js index 65703f9d8213b..a0b4b91a75569 100644 --- a/ee/app/assets/javascripts/members/promotion_requests/store/state.js +++ b/ee/app/assets/javascripts/members/promotion_requests/store/state.js @@ -1,5 +1,5 @@ -export default ({ pagination }) => ({ +export default ({ totalItems }) => ({ pagination: { - totalItems: pagination?.totalItems ?? 0, + totalItems: totalItems ?? 0, }, }); diff --git a/ee/app/controllers/ee/groups/group_members_controller.rb b/ee/app/controllers/ee/groups/group_members_controller.rb index 14862ad3ff061..6b46743fc3714 100644 --- a/ee/app/controllers/ee/groups/group_members_controller.rb +++ b/ee/app/controllers/ee/groups/group_members_controller.rb @@ -40,7 +40,7 @@ def index # rubocop:disable Gitlab/ModuleWithInstanceVariables @banned = presented_banned_members @memberships_with_custom_role = present_group_members(group_memberships_with_custom_role) - @pending_promotion_members = pending_promotion_members + @pending_promotion_members_count = pending_promotion_members_count # rubocop:enable Gitlab/ModuleWithInstanceVariables end @@ -168,14 +168,13 @@ def banned_members(params: {}) .banned_from(group) end - def pending_promotion_members + def pending_promotion_members_count return unless can?(current_user, :admin_group_member, group) GitlabSubscriptions::MemberManagement::MemberApprovalFinder .new(current_user: current_user, params: params, source: group) .execute - .page(params[:promotion_requests_page]) - .per(MEMBER_PER_PAGE_LIMIT) + .count end end end diff --git a/ee/app/controllers/ee/projects/project_members_controller.rb b/ee/app/controllers/ee/projects/project_members_controller.rb index 99db8a2c6f0ea..081a863e48705 100644 --- a/ee/app/controllers/ee/projects/project_members_controller.rb +++ b/ee/app/controllers/ee/projects/project_members_controller.rb @@ -13,7 +13,7 @@ def index super # rubocop:disable Gitlab/ModuleWithInstanceVariables -- Need to initialize pending members - @pending_promotion_members = pending_promotion_members + @pending_promotion_members_count = pending_promotion_members_count # rubocop:enable Gitlab/ModuleWithInstanceVariables end @@ -37,14 +37,13 @@ def non_invited_members super.non_awaiting end - def pending_promotion_members + def pending_promotion_members_count return unless can?(current_user, :admin_project_member, project) GitlabSubscriptions::MemberManagement::MemberApprovalFinder .new(current_user: current_user, params: params, source: project) .execute - .page(params[:promotion_requests_page]) - .per(MEMBER_PER_PAGE_LIMIT) + .count end end end diff --git a/ee/app/helpers/ee/groups/group_members_helper.rb b/ee/app/helpers/ee/groups/group_members_helper.rb index 9c01b40507a05..48f1f61005bf5 100644 --- a/ee/app/helpers/ee/groups/group_members_helper.rb +++ b/ee/app/helpers/ee/groups/group_members_helper.rb @@ -21,7 +21,7 @@ def group_members_app_data( banned:, include_relations:, search:, - pending_members:, + pending_members_count:, placeholder_users: ) super.merge!({ @@ -30,7 +30,7 @@ def group_members_app_data( can_filter_by_enterprise: group.domain_verification_available? && can?(current_user, :admin_group_member, group), banned: group_members_list_data(group, banned), manage_member_roles_path: manage_member_roles_path(group), - promotion_request: pending_members.present? ? promotion_pending_members_list_data(pending_members) : [], + promotion_request: { total_items: pending_members_count }, can_approve_access_requests: !::Namespaces::FreeUserCap::Enforcement.new(group.root_ancestor).reached_limit?, namespace_user_limit: ::Namespaces::FreeUserCap.dashboard_limit }) diff --git a/ee/app/helpers/ee/members_helper.rb b/ee/app/helpers/ee/members_helper.rb index 06dae14db6b2b..dc5da0df5dcb7 100644 --- a/ee/app/helpers/ee/members_helper.rb +++ b/ee/app/helpers/ee/members_helper.rb @@ -9,20 +9,6 @@ def members_page? private - def promotion_pending_members_list_data(pending_promotion_members) - pagination = { param_name: :promotion_requests_page, params: { page: nil } } - { - data: promotion_pending_members_serialized(pending_promotion_members), - pagination: members_pagination_data(pending_promotion_members, pagination) - } - end - - def promotion_pending_members_serialized(pending_promotion_members) - GitlabSubscriptions::MemberManagement::MemberApprovalSerializer.new.represent( - pending_promotion_members, { current_user: current_user } - ) - end - def member_header_manage_namespace_members_text(namespace) manage_text = _( 'To manage seats for all members associated with this group and its subgroups and projects, ' \ diff --git a/ee/app/helpers/ee/projects/project_members_helper.rb b/ee/app/helpers/ee/projects/project_members_helper.rb index bb0613754ff6f..d3e49de066ddb 100644 --- a/ee/app/helpers/ee/projects/project_members_helper.rb +++ b/ee/app/helpers/ee/projects/project_members_helper.rb @@ -7,11 +7,11 @@ module ProjectMembersHelper override :project_members_app_data def project_members_app_data( - project, members:, invited:, access_requests:, include_relations:, search:, pending_members: + project, members:, invited:, access_requests:, include_relations:, search:, pending_members_count: ) super.merge( manage_member_roles_path: manage_member_roles_path(project), - promotion_request: pending_members.present? ? promotion_pending_members_list_data(pending_members) : [], + promotion_request: { total_items: pending_members_count }, can_approve_access_requests: can_approve_access_requests(project), namespace_user_limit: ::Namespaces::FreeUserCap.dashboard_limit ) diff --git a/ee/spec/frontend/members/promotion_requests/store/state_spec.js b/ee/spec/frontend/members/promotion_requests/store/state_spec.js index df90e3bd0b449..20ab4522541ec 100644 --- a/ee/spec/frontend/members/promotion_requests/store/state_spec.js +++ b/ee/spec/frontend/members/promotion_requests/store/state_spec.js @@ -3,7 +3,7 @@ import { pagination } from '../mock_data'; describe('Promotion requests store state', () => { it('inits the state', () => { - const state = createState({ pagination }); + const state = createState(pagination); expect(state).toEqual({ pagination }); }); }); diff --git a/ee/spec/helpers/ee/groups/group_members_helper_spec.rb b/ee/spec/helpers/ee/groups/group_members_helper_spec.rb index 8ed16a90fec94..07440b09022e7 100644 --- a/ee/spec/helpers/ee/groups/group_members_helper_spec.rb +++ b/ee/spec/helpers/ee/groups/group_members_helper_spec.rb @@ -22,7 +22,7 @@ banned: banned, include_relations: [:inherited, :direct], search: nil, - pending_members: [], + pending_members_count: [], placeholder_users: {} ) end @@ -139,7 +139,7 @@ end end - context 'with promotion_request' do + context 'with promotion_request_count' do let(:type) { :for_group_member } let(:member_namespace) { group } @@ -152,12 +152,12 @@ banned: banned, include_relations: [:inherited, :direct], search: nil, - pending_members: pending_members, + pending_members_count: pending_members_count, placeholder_users: {} ) end - it_behaves_like 'adding promotion_request in app data' + it_behaves_like 'adding promotion_request_count in app data' end describe 'available roles' do diff --git a/ee/spec/helpers/projects/project_members_helper_spec.rb b/ee/spec/helpers/projects/project_members_helper_spec.rb index 7feda6434f180..0beef38b2b5ec 100644 --- a/ee/spec/helpers/projects/project_members_helper_spec.rb +++ b/ee/spec/helpers/projects/project_members_helper_spec.rb @@ -52,7 +52,7 @@ def call_project_members_app_data_json access_requests: [], include_relations: [:inherited, :direct], search: nil, - pending_members: [] + pending_members_count: [] ) end @@ -81,17 +81,17 @@ def initialize(user) access_requests: [], include_relations: [:inherited, :direct], search: nil, - pending_members: pending_members + pending_members_count: pending_members_count ) end - let(:pending_members) { nil } + let(:pending_members_count) { nil } - context 'with promotion_request' do + context 'with promotion_request_count' do let(:type) { :for_project_member } let(:member_namespace) { project.project_namespace } - it_behaves_like 'adding promotion_request in app data' + it_behaves_like 'adding promotion_request_count in app data' end context 'with `can_approve_access_requests`' do diff --git a/ee/spec/requests/groups/group_members_controller_spec.rb b/ee/spec/requests/groups/group_members_controller_spec.rb index 0302742e12e8f..509a27a0a4176 100644 --- a/ee/spec/requests/groups/group_members_controller_spec.rb +++ b/ee/spec/requests/groups/group_members_controller_spec.rb @@ -102,23 +102,10 @@ context 'with member_promotion management feature enabled' do context 'when user can admin group' do - it 'assigns @pending_promotion_members with the correct pending members' do + it 'assigns @pending_promotion_members_count with the correct pending members' do get_group_members - expect(assigns(:pending_promotion_members)).to match_array(pending_member_approvals) - end - - context 'with pagination' do - let(:params) { { promotion_requests_page: 2 } } - - it 'paginates @pending_promotion_members correctly' do - stub_const("EE::#{described_class}::MEMBER_PER_PAGE_LIMIT", 1) - - get_group_members - - expect(assigns(:pending_promotion_members).size).to eq(1) - expect(assigns(:pending_promotion_members)).to contain_exactly(pending_member_approvals.second) - end + expect(assigns(:pending_promotion_members_count)).to eq(2) end end @@ -127,19 +114,19 @@ group.add_developer(user) end - it 'does not assigns @pending_promotion_members' do + it 'does not assigns @pending_promotion_members_count' do get_group_members - expect(assigns(:pending_promotion_members)).to eq(nil) + expect(assigns(:pending_promotion_members_count)).to eq(nil) end end end shared_examples "empty response" do - it 'assigns @pending_promotion_members be empty' do + it 'assigns @pending_promotion_members_count to be 0' do get_group_members - expect(assigns(:pending_promotion_members)).to be_empty + expect(assigns(:pending_promotion_members_count)).to eq(0) end end diff --git a/ee/spec/requests/projects/project_members_controller_spec.rb b/ee/spec/requests/projects/project_members_controller_spec.rb index c2eb40cb099e1..3bf97fa5fe402 100644 --- a/ee/spec/requests/projects/project_members_controller_spec.rb +++ b/ee/spec/requests/projects/project_members_controller_spec.rb @@ -37,45 +37,31 @@ context 'with member_promotion management feature enabled' do context 'when user can admin project' do - it 'assigns @pending_promotion_members' do + it 'assigns @pending_promotion_members_count' do make_request - expect(assigns(:pending_promotion_members)).to match_array(pending_member_approvals) - end - - context 'with pagination' do - let(:param) { { promotion_requests_page: 2 } } - - it 'paginates @pending_promotion_members correctly' do - group.add_owner(user) - stub_const("EE::#{described_class}::MEMBER_PER_PAGE_LIMIT", 1) - - make_request - - expect(assigns(:pending_promotion_members).size).to eq(1) - expect(assigns(:pending_promotion_members)).to contain_exactly(pending_member_approvals.second) - end + expect(assigns(:pending_promotion_members_count)).to eq(2) end end context 'when user cannot admin project' do - it 'does not assigns @pending_promotion_members' do + it 'does not assigns @pending_promotion_members_count' do user = create(:user) sign_in(user) project.add_developer(user) make_request - expect(assigns(:pending_promotion_members)).to eq(nil) + expect(assigns(:pending_promotion_members_count)).to eq(nil) end end end shared_examples "empty response" do - it 'assigns @pending_promotion_members be empty' do + it 'assigns @pending_promotion_members_count be be 0' do make_request - expect(assigns(:pending_promotion_members)).to be_empty + expect(assigns(:pending_promotion_members_count)).to eq(0) end end diff --git a/ee/spec/support/shared_examples/helpers/promotion_request_shared_examples.rb b/ee/spec/support/shared_examples/helpers/promotion_request_shared_examples.rb index a74bf412b3873..e957de84cdbcc 100644 --- a/ee/spec/support/shared_examples/helpers/promotion_request_shared_examples.rb +++ b/ee/spec/support/shared_examples/helpers/promotion_request_shared_examples.rb @@ -1,24 +1,21 @@ # frozen_string_literal: true -RSpec.shared_examples 'adding promotion_request in app data' do - context 'when pending_members is nil' do - let!(:pending_members) { nil } +RSpec.shared_examples 'adding promotion_request_count in app data' do + context 'when pending_members_count is nil' do + let!(:pending_members_count) { nil } - it 'returns `promotion_request` property with []' do - expect(helper_app_data[:promotion_request]).to eq [] + it 'returns `promotion_request_count` property with []' do + expect(helper_app_data[:promotion_request]).to include({ total_items: nil }) end end context 'when pending_members is not nil' do - let!(:pending_members) do + let!(:pending_members_count) do create_list(:member_approval, 2, type, member_namespace: member_namespace) end - it 'returns valid `promotion_request`' do - expect(helper_app_data[:promotion_request].keys).to match_array([:data, :pagination]) - expect(helper_app_data[:promotion_request][:data].size).to eq(2) - expect(helper_app_data[:promotion_request][:data].first.keys).to match_array [:id, :created_at, - :updated_at, :requested_by, :reviewed_by, :new_access_level, :old_access_level, :source, :user] + it 'returns valid `promotion_request_count`' do + expect(helper_app_data[:promotion_request].keys).to match_array([:total_items]) end end end diff --git a/spec/helpers/groups/group_members_helper_spec.rb b/spec/helpers/groups/group_members_helper_spec.rb index ed60630560e6c..b2e8381d8c4d2 100644 --- a/spec/helpers/groups/group_members_helper_spec.rb +++ b/spec/helpers/groups/group_members_helper_spec.rb @@ -36,7 +36,7 @@ banned: [], include_relations: [:inherited, :direct], search: nil, - pending_members: [], + pending_members_count: [], placeholder_users: { pagination: { total_items: 3, @@ -121,7 +121,7 @@ banned: [], include_relations: include_relations, search: nil, - pending_members: [], + pending_members_count: [], placeholder_users: {} ) end diff --git a/spec/helpers/projects/project_members_helper_spec.rb b/spec/helpers/projects/project_members_helper_spec.rb index f874e5d338a1a..191795a9d4ccb 100644 --- a/spec/helpers/projects/project_members_helper_spec.rb +++ b/spec/helpers/projects/project_members_helper_spec.rb @@ -32,7 +32,7 @@ access_requests: present_members(access_requests), include_relations: [:inherited, :direct], search: nil, - pending_members: [] + pending_members_count: [] ) ) end @@ -142,7 +142,7 @@ access_requests: present_members(access_requests), include_relations: include_relations, search: nil, - pending_members: [] + pending_members_count: [] ) ) end -- GitLab