From d4ff282b9fc64f8eb841fc4a05afc07c44aef340 Mon Sep 17 00:00:00 2001 From: Eugenia Grieff Date: Thu, 31 Oct 2024 12:44:39 +0100 Subject: [PATCH] Add Planner role to access level GraphQL enums Add specs Changelog: added EE: true --- app/assets/javascripts/access_level/constants.js | 1 + app/graphql/types/access_level_enum.rb | 1 + doc/api/graphql/reference/index.md | 2 ++ ee/app/graphql/types/gitlab_subscriptions/user_role_enum.rb | 1 + ee/spec/features/groups/members/manage_groups_spec.rb | 2 ++ ee/spec/features/groups/members/manage_members_spec.rb | 5 ++++- .../types/gitlab_subscriptions/user_role_enum_spec.rb | 2 +- spec/features/projects/members/manage_members_spec.rb | 4 ++-- spec/graphql/types/access_level_enum_spec.rb | 3 ++- 9 files changed, 16 insertions(+), 5 deletions(-) diff --git a/app/assets/javascripts/access_level/constants.js b/app/assets/javascripts/access_level/constants.js index 105c9f392cfcf2..42647678ed17d1 100644 --- a/app/assets/javascripts/access_level/constants.js +++ b/app/assets/javascripts/access_level/constants.js @@ -116,6 +116,7 @@ export const ACCESS_LEVEL_LABELS = { [ACCESS_LEVEL_NO_ACCESS_INTEGER]: ACCESS_LEVEL_NO_ACCESS, [ACCESS_LEVEL_MINIMAL_ACCESS_INTEGER]: ACCESS_LEVEL_MINIMAL_ACCESS, [ACCESS_LEVEL_GUEST_INTEGER]: ACCESS_LEVEL_GUEST, + [ACCESS_LEVEL_PLANNER_INTEGER]: ACCESS_LEVEL_PLANNER, [ACCESS_LEVEL_REPORTER_INTEGER]: ACCESS_LEVEL_REPORTER, [ACCESS_LEVEL_DEVELOPER_INTEGER]: ACCESS_LEVEL_DEVELOPER, [ACCESS_LEVEL_MAINTAINER_INTEGER]: ACCESS_LEVEL_MAINTAINER, diff --git a/app/graphql/types/access_level_enum.rb b/app/graphql/types/access_level_enum.rb index d58e7230a8e50f..750fedb62a6208 100644 --- a/app/graphql/types/access_level_enum.rb +++ b/app/graphql/types/access_level_enum.rb @@ -8,6 +8,7 @@ class AccessLevelEnum < BaseEnum value 'NO_ACCESS', value: Gitlab::Access::NO_ACCESS, description: 'No access.' value 'MINIMAL_ACCESS', value: Gitlab::Access::MINIMAL_ACCESS, description: 'Minimal access.' value 'GUEST', value: Gitlab::Access::GUEST, description: 'Guest access.' + value 'PLANNER', value: Gitlab::Access::PLANNER, description: 'Planner access.' value 'REPORTER', value: Gitlab::Access::REPORTER, description: 'Reporter access.' value 'DEVELOPER', value: Gitlab::Access::DEVELOPER, description: 'Developer access.' value 'MAINTAINER', value: Gitlab::Access::MAINTAINER, description: 'Maintainer access.' diff --git a/doc/api/graphql/reference/index.md b/doc/api/graphql/reference/index.md index 5d2c71c37ae5a6..fbfc89d2ccb78f 100644 --- a/doc/api/graphql/reference/index.md +++ b/doc/api/graphql/reference/index.md @@ -37461,6 +37461,7 @@ Access level to a resource. | `MINIMAL_ACCESS` | Minimal access. | | `NO_ACCESS` | No access. | | `OWNER` | Owner access. | +| `PLANNER` | Planner access. | | `REPORTER` | Reporter access. | ### `AgentTokenStatus` @@ -38835,6 +38836,7 @@ Role of User. | `GUEST` | Guest. | | `MAINTAINER` | Maintainer. | | `OWNER` | Owner. | +| `PLANNER` | Planner. | | `REPORTER` | Reporter. | ### `GitlabSubscriptionsUserSort` diff --git a/ee/app/graphql/types/gitlab_subscriptions/user_role_enum.rb b/ee/app/graphql/types/gitlab_subscriptions/user_role_enum.rb index fe3e8cde0c88ba..2af61cd40d0e7d 100644 --- a/ee/app/graphql/types/gitlab_subscriptions/user_role_enum.rb +++ b/ee/app/graphql/types/gitlab_subscriptions/user_role_enum.rb @@ -7,6 +7,7 @@ class UserRoleEnum < BaseEnum description 'Role of User' value 'GUEST', value: :guest, description: 'Guest.' + value 'PLANNER', value: :planner, description: 'Planner.' value 'REPORTER', value: :reporter, description: 'Reporter.' value 'DEVELOPER', value: :developer, description: 'Developer.' value 'MAINTAINER', value: :maintainer, description: 'Maintainer.' diff --git a/ee/spec/features/groups/members/manage_groups_spec.rb b/ee/spec/features/groups/members/manage_groups_spec.rb index 11f6da9a5ae5d9..bd21e8598e4a82 100644 --- a/ee/spec/features/groups/members/manage_groups_spec.rb +++ b/ee/spec/features/groups/members/manage_groups_spec.rb @@ -96,6 +96,7 @@ end it_behaves_like "triggers an overage modal when adding a group with a given role", 'Guest' + it_behaves_like "triggers an overage modal when adding a group with a given role", 'Planner' it_behaves_like "triggers an overage modal when adding a group with a given role", 'Developer' context 'when overage modal is shown' do @@ -118,6 +119,7 @@ end it_behaves_like "doesn't trigger an overage modal when adding a group with a given role", 'Guest' + it_behaves_like "triggers an overage modal when adding a group with a given role", 'Planner' it_behaves_like "triggers an overage modal when adding a group with a given role", 'Developer' end diff --git a/ee/spec/features/groups/members/manage_members_spec.rb b/ee/spec/features/groups/members/manage_members_spec.rb index 5e9ae621b4a8bc..cbd91380df3bb4 100644 --- a/ee/spec/features/groups/members/manage_members_spec.rb +++ b/ee/spec/features/groups/members/manage_members_spec.rb @@ -200,18 +200,21 @@ end include_examples 'adding one user with a given role doesn\'t trigger an overage modal', 'Guest' + include_examples 'shows an overage modal when adding one user with a given role', 'Planner' include_examples 'shows an overage modal when adding one user with a given role', 'Developer' include_examples 'adding one user by email with a given role doesn\'t trigger an overage modal', 'Guest' + include_examples 'adding user by email with a given role', 'Planner' include_examples 'adding user by email with a given role', 'Developer' end - context 'when adding a member to a ultimate group that alerady has an overage' do + context 'when adding a member to a ultimate group that already has an overage' do before do create(:gitlab_subscription, namespace: group, hosted_plan: ultimate_plan, seats: 1, seats_in_use: 2) end include_examples 'shows an overage modal when adding one user with a given role', 'Developer' + include_examples 'shows an overage modal when adding one user with a given role', 'Planner' include_examples 'adding one user by email with a given role doesn\'t trigger an overage modal', 'Guest' end diff --git a/ee/spec/graphql/types/gitlab_subscriptions/user_role_enum_spec.rb b/ee/spec/graphql/types/gitlab_subscriptions/user_role_enum_spec.rb index d12f030d915e28..a300ba1253fa96 100644 --- a/ee/spec/graphql/types/gitlab_subscriptions/user_role_enum_spec.rb +++ b/ee/spec/graphql/types/gitlab_subscriptions/user_role_enum_spec.rb @@ -4,6 +4,6 @@ RSpec.describe GitlabSchema.types['GitlabSubscriptionsUserRole'] do it 'exposes all user roles' do - expect(described_class.values.keys).to contain_exactly(*%w[GUEST REPORTER DEVELOPER MAINTAINER OWNER]) + expect(described_class.values.keys).to contain_exactly(*%w[GUEST PLANNER REPORTER DEVELOPER MAINTAINER OWNER]) end end diff --git a/spec/features/projects/members/manage_members_spec.rb b/spec/features/projects/members/manage_members_spec.rb index e281d7d45d4f3a..06e437fcb16f96 100644 --- a/spec/features/projects/members/manage_members_spec.rb +++ b/spec/features/projects/members/manage_members_spec.rb @@ -112,7 +112,7 @@ it 'shows Owner in the dropdown' do within_modal do toggle_listbox - expect_listbox_items(%w[Guest Reporter Developer Maintainer Owner]) + expect_listbox_items(%w[Guest Planner Reporter Developer Maintainer Owner]) end end end @@ -123,7 +123,7 @@ it 'does not show the Owner option' do within_modal do toggle_listbox - expect_listbox_items(%w[Guest Reporter Developer Maintainer]) + expect_listbox_items(%w[Guest Planner Reporter Developer Maintainer]) end end end diff --git a/spec/graphql/types/access_level_enum_spec.rb b/spec/graphql/types/access_level_enum_spec.rb index 6a8d2e26e6505f..8f6950b1062b51 100644 --- a/spec/graphql/types/access_level_enum_spec.rb +++ b/spec/graphql/types/access_level_enum_spec.rb @@ -6,6 +6,7 @@ specify { expect(described_class.graphql_name).to eq('AccessLevelEnum') } it 'exposes all the existing access levels' do - expect(described_class.values.keys).to include(*%w[NO_ACCESS MINIMAL_ACCESS GUEST REPORTER DEVELOPER MAINTAINER OWNER]) + expect(described_class.values.keys) + .to include(*%w[NO_ACCESS MINIMAL_ACCESS GUEST PLANNER REPORTER DEVELOPER MAINTAINER OWNER]) end end -- GitLab