diff options
Diffstat (limited to 'spec/support/shared_contexts')
13 files changed, 135 insertions, 41 deletions
diff --git a/spec/support/shared_contexts/ci/catalog/resources/version_shared_context.rb b/spec/support/shared_contexts/ci/catalog/resources/version_shared_context.rb index 3c9bb980b46..3eeaa52d221 100644 --- a/spec/support/shared_contexts/ci/catalog/resources/version_shared_context.rb +++ b/spec/support/shared_contexts/ci/catalog/resources/version_shared_context.rb @@ -3,14 +3,14 @@ RSpec.shared_context 'when there are catalog resources with versions' do let_it_be(:current_user) { create(:user) } - let_it_be(:project1) { create(:project, :repository) } - let_it_be(:project2) { create(:project, :repository) } - let_it_be(:project3) { create(:project, :repository) } + let_it_be(:project1) { create(:project, :repository, name: 'A') } + let_it_be(:project2) { create(:project, :repository, name: 'Z') } + let_it_be(:project3) { create(:project, :repository, name: 'L', description: 'Z') } let_it_be_with_reload(:resource1) { create(:ci_catalog_resource, project: project1) } let_it_be_with_reload(:resource2) { create(:ci_catalog_resource, project: project2) } let_it_be(:resource3) { create(:ci_catalog_resource, project: project3) } - let_it_be(:release_v1_0) { create(:release, project: project1, tag: 'v1.0', released_at: 4.days.ago) } + let_it_be_with_reload(:release_v1_0) { create(:release, project: project1, tag: 'v1.0', released_at: 4.days.ago) } let_it_be(:release_v1_1) { create(:release, project: project1, tag: 'v1.1', released_at: 3.days.ago) } let_it_be(:release_v2_0) { create(:release, project: project2, tag: 'v2.0', released_at: 2.days.ago) } let_it_be(:release_v2_1) { create(:release, project: project2, tag: 'v2.1', released_at: 1.day.ago) } diff --git a/spec/support/shared_contexts/features/integrations/project_integrations_jira_context.rb b/spec/support/shared_contexts/features/integrations/project_integrations_jira_context.rb index fadd46a7e12..c8552e02d0c 100644 --- a/spec/support/shared_contexts/features/integrations/project_integrations_jira_context.rb +++ b/spec/support/shared_contexts/features/integrations/project_integrations_jira_context.rb @@ -7,8 +7,8 @@ RSpec.shared_context 'project integration Jira context' do def fill_form(disable: false) click_active_checkbox if disable - fill_in 'service_url', with: url - fill_in 'service_username', with: 'username' - fill_in 'service_password', with: 'password' + fill_in 'service-url', with: url + fill_in 'service-username', with: 'username' + fill_in 'service-password', with: 'password' end end diff --git a/spec/support/shared_contexts/finders/issues_finder_shared_contexts.rb b/spec/support/shared_contexts/finders/issues_finder_shared_contexts.rb index 16d23f63fd0..2ad2fcec39e 100644 --- a/spec/support/shared_contexts/finders/issues_finder_shared_contexts.rb +++ b/spec/support/shared_contexts/finders/issues_finder_shared_contexts.rb @@ -63,6 +63,11 @@ RSpec.shared_context 'IssuesFinder context' do ) end + let_it_be(:group_level_item) { create(:issue, :epic, :group_level, namespace: group, author: user) } + let_it_be(:group_level_confidential_item) do + create(:issue, :confidential, :epic, :group_level, namespace: group, author: user2) + end + let_it_be(:award_emoji1) { create(:award_emoji, name: 'thumbsup', user: user, awardable: item1) } let_it_be(:award_emoji2) { create(:award_emoji, name: 'thumbsup', user: user2, awardable: item2) } let_it_be(:award_emoji3) { create(:award_emoji, name: 'thumbsdown', user: user, awardable: item3) } diff --git a/spec/support/shared_contexts/finders/work_items_finder_shared_contexts.rb b/spec/support/shared_contexts/finders/work_items_finder_shared_contexts.rb index 1118039d164..39e2819235b 100644 --- a/spec/support/shared_contexts/finders/work_items_finder_shared_contexts.rb +++ b/spec/support/shared_contexts/finders/work_items_finder_shared_contexts.rb @@ -63,6 +63,25 @@ RSpec.shared_context 'WorkItemsFinder context' do ) end + let_it_be(:group_level_item) do + create( + :work_item, + :epic, + namespace: group, + author: user + ) + end + + let_it_be(:group_level_confidential_item) do + create( + :work_item, + :confidential, + :epic, + namespace: group, + author: user2 + ) + end + let_it_be(:award_emoji1) { create(:award_emoji, name: 'thumbsup', user: user, awardable: item1) } let_it_be(:award_emoji2) { create(:award_emoji, name: 'thumbsup', user: user2, awardable: item2) } let_it_be(:award_emoji3) { create(:award_emoji, name: 'thumbsdown', user: user, awardable: item3) } diff --git a/spec/support/shared_contexts/graphql/types/query_type_shared_context.rb b/spec/support/shared_contexts/graphql/types/query_type_shared_context.rb index 257ccc553fe..6ab41d87f44 100644 --- a/spec/support/shared_contexts/graphql/types/query_type_shared_context.rb +++ b/spec/support/shared_contexts/graphql/types/query_type_shared_context.rb @@ -43,6 +43,7 @@ RSpec.shared_context 'with FOSS query type fields' do :user, :users, :work_item, + :work_items_by_reference, :audit_event_definitions, :abuse_report, :abuse_report_labels diff --git a/spec/support/shared_contexts/merge_request_edit_shared_context.rb b/spec/support/shared_contexts/merge_request_edit_shared_context.rb index f0e89b0c5f9..cceaa14b3d2 100644 --- a/spec/support/shared_contexts/merge_request_edit_shared_context.rb +++ b/spec/support/shared_contexts/merge_request_edit_shared_context.rb @@ -5,7 +5,7 @@ RSpec.shared_context 'merge request edit context' do let(:user2) { create(:user) } let!(:milestone) { create(:milestone, project: target_project) } let!(:label) { create(:label, project: target_project) } - let!(:label2) { create(:label, project: target_project) } + let!(:label2) { create(:label, project: target_project, lock_on_merge: true) } let(:target_project) { create(:project, :public, :repository) } let(:source_project) { target_project } let(:merge_request) do diff --git a/spec/support/shared_contexts/navbar_structure_context.rb b/spec/support/shared_contexts/navbar_structure_context.rb index a5ccce27aa5..2adb9e410a7 100644 --- a/spec/support/shared_contexts/navbar_structure_context.rb +++ b/spec/support/shared_contexts/navbar_structure_context.rb @@ -236,29 +236,6 @@ RSpec.shared_context '"Explore" navbar structure' do nav_sub_items: [] }, { - nav_item: _("Topics"), - nav_sub_items: [] - }, - { - nav_item: _("Snippets"), - nav_sub_items: [] - } - ] - end -end - -RSpec.shared_context '"Explore" navbar structure with global_ci_catalog FF' do - let(:structure) do - [ - { - nav_item: _("Projects"), - nav_sub_items: [] - }, - { - nav_item: _("Groups"), - nav_sub_items: [] - }, - { nav_item: _("CI/CD Catalog"), nav_sub_items: [] }, diff --git a/spec/support/shared_contexts/policies/group_policy_shared_context.rb b/spec/support/shared_contexts/policies/group_policy_shared_context.rb index 4564fa23236..c6ea665a160 100644 --- a/spec/support/shared_contexts/policies/group_policy_shared_context.rb +++ b/spec/support/shared_contexts/policies/group_policy_shared_context.rb @@ -12,14 +12,14 @@ RSpec.shared_context 'GroupPolicy context' do let(:public_permissions) do %i[ - read_group read_counts read_issue + read_group read_counts read_issue read_namespace read_label read_issue_board_list read_milestone read_issue_board ] end let(:guest_permissions) do %i[ - read_label read_group upload_file read_namespace read_namespace_via_membership read_group_activity + read_label read_group upload_file read_namespace_via_membership read_group_activity read_group_issues read_group_boards read_group_labels read_group_milestones read_group_merge_requests ] diff --git a/spec/support/shared_contexts/policies/project_policy_table_shared_context.rb b/spec/support/shared_contexts/policies/project_policy_table_shared_context.rb index 11f6d816fc1..04bbbcb1c36 100644 --- a/spec/support/shared_contexts/policies/project_policy_table_shared_context.rb +++ b/spec/support/shared_contexts/policies/project_policy_table_shared_context.rb @@ -83,16 +83,16 @@ RSpec.shared_context 'ProjectPolicyTable context' do :public | :anonymous | nil | 1 :internal | :admin | true | 1 - :internal | :admin | false | 0 - :internal | :reporter | nil | 0 - :internal | :guest | nil | 0 - :internal | :non_member | nil | 0 + :internal | :admin | false | 1 + :internal | :reporter | nil | 1 + :internal | :guest | nil | 1 + :internal | :non_member | nil | 1 :internal | :anonymous | nil | 0 :private | :admin | true | 1 :private | :admin | false | 0 - :private | :reporter | nil | 0 - :private | :guest | nil | 0 + :private | :reporter | nil | 1 + :private | :guest | nil | 1 :private | :non_member | nil | 0 :private | :anonymous | nil | 0 end diff --git a/spec/support/shared_contexts/requests/api/graphql/work_items/work_item_types_shared_context.rb b/spec/support/shared_contexts/requests/api/graphql/work_items/work_item_types_shared_context.rb new file mode 100644 index 00000000000..3a062d77b4f --- /dev/null +++ b/spec/support/shared_contexts/requests/api/graphql/work_items/work_item_types_shared_context.rb @@ -0,0 +1,64 @@ +# frozen_string_literal: true + +RSpec.shared_context 'with work item types request context' do + let(:work_item_type_fields) do + <<~GRAPHQL + id + name + iconName + widgetDefinitions { + type + ... on WorkItemWidgetDefinitionAssignees { + canInviteMembers + } + ... on WorkItemWidgetDefinitionHierarchy { + allowedChildTypes { + nodes { id name } + } + } + } + GRAPHQL + end + + # This is necessary so we can overwrite attributes in EE + let(:widget_attributes) { base_widget_attributes } + let(:base_widget_attributes) do + { + assignees: { + 'canInviteMembers' => false + } + } + end + + def expected_work_item_type_response(work_item_type = nil) + base_scope = WorkItems::Type.default + base_scope = base_scope.id_in(work_item_type.id) if work_item_type + + base_scope.map do |type| + hash_including( + 'id' => type.to_global_id.to_s, + 'name' => type.name, + 'iconName' => type.icon_name, + 'widgetDefinitions' => match_array(widgets_for(type)) + ) + end + end + + def widgets_for(work_item_type) + work_item_type.widgets.map do |widget| + base_attributes = { 'type' => widget.type.to_s.upcase } + next hierarchy_widget_attributes(work_item_type, base_attributes) if widget == WorkItems::Widgets::Hierarchy + next base_attributes unless widget_attributes[widget.type] + + base_attributes.merge(widget_attributes[widget.type]) + end + end + + def hierarchy_widget_attributes(work_item_type, base_attributes) + fields = work_item_type.allowed_child_types_by_name.map do |child_type| + { "id" => child_type.to_global_id.to_s, "name" => child_type.name } + end + + base_attributes.merge({ 'allowedChildTypes' => { 'nodes' => fields } }) + end +end diff --git a/spec/support/shared_contexts/requests/api/terraform_modules_shared_context.rb b/spec/support/shared_contexts/requests/api/terraform_modules_shared_context.rb new file mode 100644 index 00000000000..359664ee4f3 --- /dev/null +++ b/spec/support/shared_contexts/requests/api/terraform_modules_shared_context.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +RSpec.shared_context 'for terraform modules api setup' do + include PackagesManagerApiSpecHelpers + include WorkhorseHelpers + + let_it_be_with_reload(:group) { create(:group) } + let_it_be_with_reload(:project) { create(:project, namespace: group) } + let_it_be(:package) { create(:terraform_module_package, project: project) } + let_it_be(:personal_access_token) { create(:personal_access_token) } + let_it_be(:user) { personal_access_token.user } + let_it_be(:job) { create(:ci_build, :running, user: user, project: project) } + let_it_be(:deploy_token) { create(:deploy_token, read_package_registry: true, write_package_registry: true) } + let_it_be(:project_deploy_token) { create(:project_deploy_token, deploy_token: deploy_token, project: project) } + + let(:headers) { {} } + let(:token) { tokens[token_type] } + + let(:tokens) do + { + personal_access_token: personal_access_token.token, + deploy_token: deploy_token.token, + job_token: job.token, + invalid: 'invalid-token123' + } + end +end diff --git a/spec/support/shared_contexts/services/service_ping/stubbed_service_ping_metrics_definitions_shared_context.rb b/spec/support/shared_contexts/services/service_ping/stubbed_service_ping_metrics_definitions_shared_context.rb index 24f0d22da47..b51c68f4958 100644 --- a/spec/support/shared_contexts/services/service_ping/stubbed_service_ping_metrics_definitions_shared_context.rb +++ b/spec/support/shared_contexts/services/service_ping/stubbed_service_ping_metrics_definitions_shared_context.rb @@ -50,7 +50,8 @@ RSpec.shared_context 'stubbed service ping metrics definitions' do 'value_type' => value_type, 'status' => status, 'instrumentation_class' => instrumentation_class, - 'time_frame' => 'all' + 'time_frame' => 'all', + 'data_source' => 'redis_hll' } end end diff --git a/spec/support/shared_contexts/single_change_access_checks_shared_context.rb b/spec/support/shared_contexts/single_change_access_checks_shared_context.rb index bf90c26047b..5945302824b 100644 --- a/spec/support/shared_contexts/single_change_access_checks_shared_context.rb +++ b/spec/support/shared_contexts/single_change_access_checks_shared_context.rb @@ -21,7 +21,7 @@ RSpec.shared_context 'change access checks context' do ) end - subject { described_class.new(change_access) } + subject(:change_check) { described_class.new(change_access) } before do project.add_developer(user) |