diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-03-09 12:15:54 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-03-09 12:15:54 +0000 |
commit | 0c1344a7c19635e387e6f7af20591ad73f46ddff (patch) | |
tree | 2b92f62ea6e4e901127f6247a910d8f7b6f2c7c1 /spec | |
parent | a74ca2457e7c8a26ff5e12211d741b473c86c0b8 (diff) | |
download | gitlab-ce-0c1344a7c19635e387e6f7af20591ad73f46ddff.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec')
169 files changed, 927 insertions, 243 deletions
diff --git a/spec/controllers/projects/hooks_controller_spec.rb b/spec/controllers/projects/hooks_controller_spec.rb index 815370d428d..92a7be18c28 100644 --- a/spec/controllers/projects/hooks_controller_spec.rb +++ b/spec/controllers/projects/hooks_controller_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Projects::HooksController do +RSpec.describe Projects::HooksController, feature_category: :integrations do include AfterNextHelpers let_it_be(:project) { create(:project) } diff --git a/spec/factories/project_error_tracking_settings.rb b/spec/factories/project_error_tracking_settings.rb index a8ad1af6345..dc0277cb58d 100644 --- a/spec/factories/project_error_tracking_settings.rb +++ b/spec/factories/project_error_tracking_settings.rb @@ -16,7 +16,12 @@ FactoryBot.define do end trait :integrated do + api_url { nil } integrated { true } + token { nil } + project_name { nil } + organization_name { nil } + sentry_project_id { nil } end end end diff --git a/spec/frontend/clusters/components/__snapshots__/remove_cluster_confirmation_spec.js.snap b/spec/frontend/clusters/components/__snapshots__/remove_cluster_confirmation_spec.js.snap index 46ee123a12d..67b0ecdf7eb 100644 --- a/spec/frontend/clusters/components/__snapshots__/remove_cluster_confirmation_spec.js.snap +++ b/spec/frontend/clusters/components/__snapshots__/remove_cluster_confirmation_spec.js.snap @@ -43,3 +43,212 @@ exports[`Remove cluster confirmation modal renders buttons with modal included 1 <!----> </div> `; + +exports[`Remove cluster confirmation modal two buttons open modal with "cleanup" option 1`] = ` +<div + class="gl-display-flex" +> + <button + class="btn gl-mr-3 btn-danger btn-md gl-button" + data-testid="remove-integration-and-resources-button" + type="button" + > + <!----> + + <!----> + + <span + class="gl-button-text" + > + + Remove integration and resources + + </span> + </button> + + <button + class="btn btn-danger btn-md gl-button btn-danger-secondary" + data-testid="remove-integration-button" + type="button" + > + <!----> + + <!----> + + <span + class="gl-button-text" + > + + Remove integration + + </span> + </button> + + <div + kind="danger" + > + <p> + You are about to remove your cluster integration and all GitLab-created resources associated with this cluster. + </p> + + <div> + + This will permanently delete the following resources: + + <ul> + <li> + Any project namespaces + </li> + + <li> + <code> + clusterroles + </code> + </li> + + <li> + <code> + clusterrolebindings + </code> + </li> + </ul> + </div> + + <strong> + To remove your integration and resources, type + <code> + my-test-cluster + </code> + to confirm: + </strong> + + <form + action="clusterPath" + class="gl-mb-5" + method="post" + > + <input + name="_method" + type="hidden" + value="delete" + /> + + <input + name="authenticity_token" + type="hidden" + /> + + <input + name="cleanup" + type="hidden" + value="true" + /> + + <input + autocomplete="off" + class="gl-form-input form-control" + id="__BVID__14" + name="confirm_cluster_name_input" + type="text" + /> + </form> + + <span> + If you do not wish to delete all associated GitLab resources, you can simply remove the integration. + </span> + </div> +</div> +`; + +exports[`Remove cluster confirmation modal two buttons open modal without "cleanup" option 1`] = ` +<div + class="gl-display-flex" +> + <button + class="btn gl-mr-3 btn-danger btn-md gl-button" + data-testid="remove-integration-and-resources-button" + type="button" + > + <!----> + + <!----> + + <span + class="gl-button-text" + > + + Remove integration and resources + + </span> + </button> + + <button + class="btn btn-danger btn-md gl-button btn-danger-secondary" + data-testid="remove-integration-button" + type="button" + > + <!----> + + <!----> + + <span + class="gl-button-text" + > + + Remove integration + + </span> + </button> + + <div + kind="danger" + > + <p> + You are about to remove your cluster integration. + </p> + + <!----> + + <strong> + To remove your integration, type + <code> + my-test-cluster + </code> + to confirm: + </strong> + + <form + action="clusterPath" + class="gl-mb-5" + method="post" + > + <input + name="_method" + type="hidden" + value="delete" + /> + + <input + name="authenticity_token" + type="hidden" + /> + + <input + name="cleanup" + type="hidden" + value="true" + /> + + <input + autocomplete="off" + class="gl-form-input form-control" + id="__BVID__21" + name="confirm_cluster_name_input" + type="text" + /> + </form> + + <!----> + </div> +</div> +`; diff --git a/spec/frontend/clusters/components/remove_cluster_confirmation_spec.js b/spec/frontend/clusters/components/remove_cluster_confirmation_spec.js index d9fa2200a29..04b7909b534 100644 --- a/spec/frontend/clusters/components/remove_cluster_confirmation_spec.js +++ b/spec/frontend/clusters/components/remove_cluster_confirmation_spec.js @@ -6,6 +6,7 @@ import RemoveClusterConfirmation from '~/clusters/components/remove_cluster_conf describe('Remove cluster confirmation modal', () => { let wrapper; + const showMock = jest.fn(); const createComponent = ({ props = {}, stubs = {} } = {}) => { wrapper = mount(RemoveClusterConfirmation, { @@ -33,9 +34,13 @@ describe('Remove cluster confirmation modal', () => { beforeEach(() => { createComponent({ props: { clusterName: 'my-test-cluster' }, - stubs: { GlSprintf, GlModal: stubComponent(GlModal) }, + stubs: { + GlSprintf, + GlModal: stubComponent(GlModal, { + methods: { show: showMock }, + }), + }, }); - jest.spyOn(findModal().vm, 'show').mockReturnValue(); }); it('open modal with "cleanup" option', async () => { @@ -43,8 +48,8 @@ describe('Remove cluster confirmation modal', () => { await nextTick(); - expect(findModal().vm.show).toHaveBeenCalled(); - expect(wrapper.vm.confirmCleanup).toEqual(true); + expect(showMock).toHaveBeenCalled(); + expect(wrapper.element).toMatchSnapshot(); expect(findModal().html()).toContain( '<strong>To remove your integration and resources, type <code>my-test-cluster</code> to confirm:</strong>', ); @@ -55,8 +60,8 @@ describe('Remove cluster confirmation modal', () => { await nextTick(); - expect(findModal().vm.show).toHaveBeenCalled(); - expect(wrapper.vm.confirmCleanup).toEqual(false); + expect(showMock).toHaveBeenCalled(); + expect(wrapper.element).toMatchSnapshot(); expect(findModal().html()).toContain( '<strong>To remove your integration, type <code>my-test-cluster</code> to confirm:</strong>', ); diff --git a/spec/frontend/commit/commit_pipeline_status_component_spec.js b/spec/frontend/commit/commit_pipeline_status_component_spec.js index c9ee25116f5..e474ef9c635 100644 --- a/spec/frontend/commit/commit_pipeline_status_component_spec.js +++ b/spec/frontend/commit/commit_pipeline_status_component_spec.js @@ -3,14 +3,14 @@ import { shallowMount } from '@vue/test-utils'; import Visibility from 'visibilityjs'; import { nextTick } from 'vue'; import fixture from 'test_fixtures/pipelines/pipelines.json'; -import { createAlert } from '~/flash'; +import { createAlert } from '~/alert'; import Poll from '~/lib/utils/poll'; import CommitPipelineStatus from '~/projects/tree/components/commit_pipeline_status_component.vue'; import CiIcon from '~/vue_shared/components/ci_icon.vue'; jest.mock('~/lib/utils/poll'); jest.mock('visibilityjs'); -jest.mock('~/flash'); +jest.mock('~/alert'); const mockFetchData = jest.fn(); jest.mock('~/projects/tree/services/commit_pipeline_service', () => @@ -164,7 +164,7 @@ describe('Commit pipeline status component', () => { }); }); - it('displays flash error message', () => { + it('displays alert error message', () => { expect(createAlert).toHaveBeenCalled(); }); }); diff --git a/spec/frontend/commit/pipelines/pipelines_table_spec.js b/spec/frontend/commit/pipelines/pipelines_table_spec.js index 4b8abc8cf99..009ec68ddcf 100644 --- a/spec/frontend/commit/pipelines/pipelines_table_spec.js +++ b/spec/frontend/commit/pipelines/pipelines_table_spec.js @@ -14,7 +14,7 @@ import { HTTP_STATUS_OK, HTTP_STATUS_UNAUTHORIZED, } from '~/lib/utils/http_status'; -import { createAlert } from '~/flash'; +import { createAlert } from '~/alert'; import { TOAST_MESSAGE } from '~/pipelines/constants'; import axios from '~/lib/utils/axios_utils'; @@ -22,7 +22,7 @@ const $toast = { show: jest.fn(), }; -jest.mock('~/flash'); +jest.mock('~/alert'); describe('Pipelines table in Commits and Merge requests', () => { let wrapper; diff --git a/spec/frontend/ide/components/new_dropdown/modal_spec.js b/spec/frontend/ide/components/new_dropdown/modal_spec.js index b1fdf59adab..a0c454dde82 100644 --- a/spec/frontend/ide/components/new_dropdown/modal_spec.js +++ b/spec/frontend/ide/components/new_dropdown/modal_spec.js @@ -1,13 +1,13 @@ import { GlButton, GlModal } from '@gitlab/ui'; import { nextTick } from 'vue'; -import { createAlert } from '~/flash'; +import { createAlert } from '~/alert'; import Modal from '~/ide/components/new_dropdown/modal.vue'; import { createStore } from '~/ide/stores'; import { stubComponent } from 'helpers/stub_component'; import { shallowMountExtended } from 'helpers/vue_test_utils_helper'; import { createEntriesFromPaths } from '../../helpers'; -jest.mock('~/flash'); +jest.mock('~/alert'); const NEW_NAME = 'babar'; @@ -339,7 +339,7 @@ describe('new file modal component', () => { }); }); - it('does not trigger flash', () => { + it('does not trigger alert', () => { expect(createAlert).not.toHaveBeenCalled(); }); }); @@ -358,7 +358,7 @@ describe('new file modal component', () => { }); }); - it('does not trigger flash', () => { + it('does not trigger alert', () => { expect(createAlert).not.toHaveBeenCalled(); }); }); @@ -378,7 +378,7 @@ describe('new file modal component', () => { triggerSubmitModal(); }); - it('creates flash', () => { + it('creates alert', () => { expect(createAlert).toHaveBeenCalledWith({ message: 'The name "src" is already taken in this directory.', fadeTransition: false, @@ -403,7 +403,7 @@ describe('new file modal component', () => { triggerSubmitModal(); }); - it('does not create flash', () => { + it('does not create alert', () => { expect(createAlert).not.toHaveBeenCalled(); }); diff --git a/spec/frontend/ide/stores/actions/merge_request_spec.js b/spec/frontend/ide/stores/actions/merge_request_spec.js index fbae84631ee..925d64ca77a 100644 --- a/spec/frontend/ide/stores/actions/merge_request_spec.js +++ b/spec/frontend/ide/stores/actions/merge_request_spec.js @@ -3,7 +3,7 @@ import { range } from 'lodash'; import { stubPerformanceWebAPI } from 'helpers/performance'; import { TEST_HOST } from 'helpers/test_constants'; import testAction from 'helpers/vuex_action_helper'; -import { createAlert } from '~/flash'; +import { createAlert } from '~/alert'; import { leftSidebarViews, PERMISSION_READ_MR, MAX_MR_FILES_AUTO_OPEN } from '~/ide/constants'; import service from '~/ide/services'; import { createStore } from '~/ide/stores'; @@ -30,7 +30,7 @@ const createMergeRequestChangesCount = (n) => const testGetUrlForPath = (path) => `${TEST_HOST}/test/${path}`; -jest.mock('~/flash'); +jest.mock('~/alert'); describe('IDE store merge request actions', () => { let store; @@ -135,7 +135,7 @@ describe('IDE store merge request actions', () => { mock.onGet(/api\/(.*)\/projects\/abcproject\/merge_requests/).networkError(); }); - it('flashes message, if error', () => { + it('alerts message, if error', () => { return store .dispatch('getMergeRequestsForBranch', { projectId: TEST_PROJECT, @@ -519,7 +519,7 @@ describe('IDE store merge request actions', () => { ); }); - it('flashes message, if error', () => { + it('alerts message, if error', () => { store.dispatch.mockRejectedValue(); return openMergeRequest(store, mr).catch(() => { diff --git a/spec/frontend/ide/stores/actions/project_spec.js b/spec/frontend/ide/stores/actions/project_spec.js index 5a5ead4c544..b13228c20f5 100644 --- a/spec/frontend/ide/stores/actions/project_spec.js +++ b/spec/frontend/ide/stores/actions/project_spec.js @@ -2,7 +2,7 @@ import MockAdapter from 'axios-mock-adapter'; import { useMockLocationHelper } from 'helpers/mock_window_location_helper'; import testAction from 'helpers/vuex_action_helper'; import api from '~/api'; -import { createAlert } from '~/flash'; +import { createAlert } from '~/alert'; import service from '~/ide/services'; import { createStore } from '~/ide/stores'; import { @@ -19,7 +19,7 @@ import { import { logError } from '~/lib/logger'; import axios from '~/lib/utils/axios_utils'; -jest.mock('~/flash'); +jest.mock('~/alert'); jest.mock('~/lib/logger'); const TEST_PROJECT_ID = 'abc/def'; @@ -104,7 +104,7 @@ describe('IDE store project actions', () => { desc | projectPath | responseSuccess | expectedMutations ${'does not fetch permissions if project does not exist'} | ${undefined} | ${true} | ${[]} ${'fetches permission when project is specified'} | ${TEST_PROJECT_ID} | ${true} | ${[...permissionsMutations]} - ${'flashes an error if the request fails'} | ${TEST_PROJECT_ID} | ${false} | ${[]} + ${'alerts an error if the request fails'} | ${TEST_PROJECT_ID} | ${false} | ${[]} `('$desc', async ({ projectPath, expectedMutations, responseSuccess } = {}) => { store.state.currentProjectId = projectPath; if (responseSuccess) { diff --git a/spec/frontend/ide/stores/actions_spec.js b/spec/frontend/ide/stores/actions_spec.js index 1c90c0f943a..63b63af667c 100644 --- a/spec/frontend/ide/stores/actions_spec.js +++ b/spec/frontend/ide/stores/actions_spec.js @@ -4,7 +4,7 @@ import testAction from 'helpers/vuex_action_helper'; import eventHub from '~/ide/eventhub'; import { createRouter } from '~/ide/ide_router'; import { createStore } from '~/ide/stores'; -import { createAlert } from '~/flash'; +import { createAlert } from '~/alert'; import { init, stageAllChanges, @@ -31,7 +31,7 @@ jest.mock('~/lib/utils/url_utility', () => ({ visitUrl: jest.fn(), joinPaths: jest.requireActual('~/lib/utils/url_utility').joinPaths, })); -jest.mock('~/flash'); +jest.mock('~/alert'); describe('Multi-file store actions', () => { let store; @@ -210,7 +210,7 @@ describe('Multi-file store actions', () => { expect(store.dispatch).toHaveBeenCalledWith('setFileActive', 'test'); }); - it('creates flash message if file already exists', async () => { + it('creates alert message if file already exists', async () => { const f = file('test', '1', 'blob'); store.state.trees['abcproject/mybranch'].tree = [f]; store.state.entries[f.path] = f; @@ -927,7 +927,7 @@ describe('Multi-file store actions', () => { expect(document.querySelector('.flash-alert')).toBeNull(); }); - it('does not pass the error further and flashes an alert if error is not 404', async () => { + it('does not pass the error further and creates an alert if error is not 404', async () => { mock.onGet(/(.*)/).replyOnce(HTTP_STATUS_IM_A_TEAPOT); await expect(getBranchData(...callParams)).rejects.toEqual( diff --git a/spec/frontend/ide/stores/modules/terminal/actions/session_controls_spec.js b/spec/frontend/ide/stores/modules/terminal/actions/session_controls_spec.js index 0287e5269ee..2e27ce918af 100644 --- a/spec/frontend/ide/stores/modules/terminal/actions/session_controls_spec.js +++ b/spec/frontend/ide/stores/modules/terminal/actions/session_controls_spec.js @@ -1,6 +1,6 @@ import MockAdapter from 'axios-mock-adapter'; import testAction from 'helpers/vuex_action_helper'; -import { createAlert } from '~/flash'; +import { createAlert } from '~/alert'; import * as actions from '~/ide/stores/modules/terminal/actions/session_controls'; import { STARTING, PENDING, STOPPING, STOPPED } from '~/ide/stores/modules/terminal/constants'; import * as messages from '~/ide/stores/modules/terminal/messages'; @@ -13,7 +13,7 @@ import { HTTP_STATUS_UNPROCESSABLE_ENTITY, } from '~/lib/utils/http_status'; -jest.mock('~/flash'); +jest.mock('~/alert'); const TEST_PROJECT_PATH = 'lorem/root'; const TEST_BRANCH_ID = 'main'; @@ -91,7 +91,7 @@ describe('IDE store terminal session controls actions', () => { }); describe('receiveStartSessionError', () => { - it('flashes message', () => { + it('alerts message', () => { actions.receiveStartSessionError({ dispatch }); expect(createAlert).toHaveBeenCalledWith({ @@ -165,7 +165,7 @@ describe('IDE store terminal session controls actions', () => { }); describe('receiveStopSessionError', () => { - it('flashes message', () => { + it('alerts message', () => { actions.receiveStopSessionError({ dispatch }); expect(createAlert).toHaveBeenCalledWith({ diff --git a/spec/frontend/ide/stores/modules/terminal/actions/session_status_spec.js b/spec/frontend/ide/stores/modules/terminal/actions/session_status_spec.js index 9616733f052..02f7ee28072 100644 --- a/spec/frontend/ide/stores/modules/terminal/actions/session_status_spec.js +++ b/spec/frontend/ide/stores/modules/terminal/actions/session_status_spec.js @@ -1,6 +1,6 @@ import MockAdapter from 'axios-mock-adapter'; import testAction from 'helpers/vuex_action_helper'; -import { createAlert } from '~/flash'; +import { createAlert } from '~/alert'; import * as actions from '~/ide/stores/modules/terminal/actions/session_status'; import { PENDING, RUNNING, STOPPING, STOPPED } from '~/ide/stores/modules/terminal/constants'; import * as messages from '~/ide/stores/modules/terminal/messages'; @@ -8,7 +8,7 @@ import * as mutationTypes from '~/ide/stores/modules/terminal/mutation_types'; import axios from '~/lib/utils/axios_utils'; import { HTTP_STATUS_BAD_REQUEST, HTTP_STATUS_OK } from '~/lib/utils/http_status'; -jest.mock('~/flash'); +jest.mock('~/alert'); const TEST_SESSION = { id: 7, @@ -113,7 +113,7 @@ describe('IDE store terminal session controls actions', () => { }); describe('receiveSessionStatusError', () => { - it('flashes message', () => { + it('alerts message', () => { actions.receiveSessionStatusError({ dispatch }); expect(createAlert).toHaveBeenCalledWith({ diff --git a/spec/frontend/notebook/cells/markdown_spec.js b/spec/frontend/notebook/cells/markdown_spec.js index a7776bd5b69..f226776212a 100644 --- a/spec/frontend/notebook/cells/markdown_spec.js +++ b/spec/frontend/notebook/cells/markdown_spec.js @@ -1,18 +1,16 @@ import { mount } from '@vue/test-utils'; import katex from 'katex'; -import Vue, { nextTick } from 'vue'; +import { nextTick } from 'vue'; import markdownTableJson from 'test_fixtures/blob/notebook/markdown-table.json'; import basicJson from 'test_fixtures/blob/notebook/basic.json'; import mathJson from 'test_fixtures/blob/notebook/math.json'; import MarkdownComponent from '~/notebook/cells/markdown.vue'; import Prompt from '~/notebook/cells/prompt.vue'; -const Component = Vue.extend(MarkdownComponent); - window.katex = katex; function buildCellComponent(cell, relativePath = '', hidePrompt) { - return mount(Component, { + return mount(MarkdownComponent, { propsData: { cell, hidePrompt, diff --git a/spec/frontend/protected_branches/protected_branch_edit_spec.js b/spec/frontend/protected_branches/protected_branch_edit_spec.js index b4029d94980..4141d000a1c 100644 --- a/spec/frontend/protected_branches/protected_branch_edit_spec.js +++ b/spec/frontend/protected_branches/protected_branch_edit_spec.js @@ -2,12 +2,12 @@ import MockAdapter from 'axios-mock-adapter'; import $ from 'jquery'; import { setHTMLFixture, resetHTMLFixture } from 'helpers/fixtures'; import { TEST_HOST } from 'helpers/test_constants'; -import { createAlert } from '~/flash'; +import { createAlert } from '~/alert'; import axios from '~/lib/utils/axios_utils'; import { HTTP_STATUS_INTERNAL_SERVER_ERROR, HTTP_STATUS_OK } from '~/lib/utils/http_status'; import ProtectedBranchEdit from '~/protected_branches/protected_branch_edit'; -jest.mock('~/flash'); +jest.mock('~/alert'); const TEST_URL = `${TEST_HOST}/url`; const FORCE_PUSH_TOGGLE_TESTID = 'force-push-toggle'; @@ -149,7 +149,7 @@ describe('ProtectedBranchEdit', () => { toggle.click(); }); - it('flashes error', async () => { + it('alerts error', async () => { await axios.waitForAll(); expect(createAlert).toHaveBeenCalled(); diff --git a/spec/helpers/markup_helper_spec.rb b/spec/helpers/markup_helper_spec.rb index 088519248c6..9b564b5c770 100644 --- a/spec/helpers/markup_helper_spec.rb +++ b/spec/helpers/markup_helper_spec.rb @@ -534,6 +534,27 @@ RSpec.describe MarkupHelper do helper.first_line_in_markdown(object, attribute, 100, is_todo: true, project: project) end.not_to change { Gitlab::GitalyClient.get_request_count } end + + it 'strips non-user links' do + html = 'This a cool [website](https://gitlab.com/).' + + object = create_object(html) + result = helper.first_line_in_markdown(object, attribute, 100, is_todo: true, project: project) + + expect(result).to include('This a cool website.') + end + + it 'styles the current user link', :aggregate_failures do + another_user = create(:user) + html = "Please have a look, @#{user.username} @#{another_user.username}!" + + object = create_object(html) + result = helper.first_line_in_markdown(object, attribute, 100, is_todo: true, project: project) + links = Nokogiri::HTML.parse(result).css('//a') + + expect(links[0].classes).to include('current-user') + expect(links[1].classes).not_to include('current-user') + end end context 'when the asked attribute can be redacted' do diff --git a/spec/initializers/google_cloud_profiler_spec.rb b/spec/initializers/google_cloud_profiler_spec.rb new file mode 100644 index 00000000000..493d1e0bea5 --- /dev/null +++ b/spec/initializers/google_cloud_profiler_spec.rb @@ -0,0 +1,87 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe 'google cloud profiler', :aggregate_failures, feature_category: :application_performance do + subject(:load_initializer) do + load rails_root_join('config/initializers/google_cloud_profiler.rb') + end + + shared_examples 'does not call profiler agent' do + it do + expect(CloudProfilerAgent::Agent).not_to receive(:new) + + load_initializer + end + end + + context 'when GITLAB_GOOGLE_CLOUD_PROFILER_ENABLED is set to true' do + before do + stub_env('GITLAB_GOOGLE_CLOUD_PROFILER_ENABLED', true) + end + + context 'when GITLAB_GOOGLE_CLOUD_PROFILER_PROJECT_ID is not set' do + include_examples 'does not call profiler agent' + end + + context 'when GITLAB_GOOGLE_CLOUD_PROFILER_PROJECT_ID is set' do + let(:project_id) { 'gitlab-staging-1' } + let(:agent) { instance_double(CloudProfilerAgent::Agent) } + + before do + stub_env('GITLAB_GOOGLE_CLOUD_PROFILER_PROJECT_ID', project_id) + end + + context 'when run in Puma context' do + before do + allow(::Gitlab::Runtime).to receive(:puma?).and_return(true) + allow(::Gitlab::Runtime).to receive(:sidekiq?).and_return(false) + end + + it 'calls the agent' do + expect(CloudProfilerAgent::Agent) + .to receive(:new).with(service: 'gitlab-web', project_id: project_id, + logger: an_instance_of(::Gitlab::AppJsonLogger), + log_labels: hash_including( + message: 'Google Cloud Profiler Ruby', + pid: be_a(Integer), + worker_id: be_a(String) + )).and_return(agent) + expect(agent).to receive(:start) + + load_initializer + end + end + + context 'when run in Sidekiq context' do + before do + allow(::Gitlab::Runtime).to receive(:puma?).and_return(false) + allow(::Gitlab::Runtime).to receive(:sidekiq?).and_return(true) + end + + include_examples 'does not call profiler agent' + end + + context 'when run in another context' do + before do + allow(::Gitlab::Runtime).to receive(:puma?).and_return(false) + allow(::Gitlab::Runtime).to receive(:sidekiq?).and_return(false) + end + + include_examples 'does not call profiler agent' + end + end + end + + context 'when GITLAB_GOOGLE_CLOUD_PROFILER_ENABLED is not set' do + include_examples 'does not call profiler agent' + end + + context 'when GITLAB_GOOGLE_CLOUD_PROFILER_ENABLED is set to false' do + before do + stub_env('GITLAB_GOOGLE_CLOUD_PROFILER_ENABLED', false) + end + + include_examples 'does not call profiler agent' + end +end diff --git a/spec/lib/gitlab/background_migration/migrate_evidences_for_vulnerability_findings_spec.rb b/spec/lib/gitlab/background_migration/migrate_evidences_for_vulnerability_findings_spec.rb new file mode 100644 index 00000000000..b70044ab2a4 --- /dev/null +++ b/spec/lib/gitlab/background_migration/migrate_evidences_for_vulnerability_findings_spec.rb @@ -0,0 +1,136 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe Gitlab::BackgroundMigration::MigrateEvidencesForVulnerabilityFindings, + feature_category: :vulnerability_management do + let(:vulnerability_occurrences) { table(:vulnerability_occurrences) } + let(:vulnerability_finding_evidences) { table(:vulnerability_finding_evidences) } + let(:evidence_hash) { { url: 'http://test.com' } } + let(:namespace1) { table(:namespaces).create!(name: 'namespace 1', path: 'namespace1') } + let(:project1) { table(:projects).create!(namespace_id: namespace1.id, project_namespace_id: namespace1.id) } + let(:user) { table(:users).create!(email: 'test1@example.com', projects_limit: 5) } + + let(:scanner1) do + table(:vulnerability_scanners).create!(project_id: project1.id, external_id: 'test 1', name: 'test scanner 1') + end + + let(:stating_id) { vulnerability_occurrences.pluck(:id).min } + let(:end_id) { vulnerability_occurrences.pluck(:id).max } + + let(:migration) do + described_class.new( + start_id: stating_id, + end_id: end_id, + batch_table: :vulnerability_occurrences, + batch_column: :id, + sub_batch_size: 2, + pause_ms: 2, + connection: ApplicationRecord.connection + ) + end + + subject(:perform_migration) { migration.perform } + + context 'without the presence of evidence key' do + before do + create_finding!(project1.id, scanner1.id, { other_keys: 'test' }) + end + + it 'does not create any evidence' do + expect(Gitlab::AppLogger).not_to receive(:error) + + expect { perform_migration }.not_to change { vulnerability_finding_evidences.count } + end + end + + context 'with evidence equals to nil' do + before do + create_finding!(project1.id, scanner1.id, { evidence: nil }) + end + + it 'does not create any evidence' do + expect(Gitlab::AppLogger).not_to receive(:error) + + expect { perform_migration }.not_to change { vulnerability_finding_evidences.count } + end + end + + context 'with existing evidence within raw_metadata' do + let!(:finding1) { create_finding!(project1.id, scanner1.id, { evidence: evidence_hash }) } + let!(:finding2) { create_finding!(project1.id, scanner1.id, { evidence: evidence_hash }) } + + it 'creates new evidence for each finding' do + expect(Gitlab::AppLogger).not_to receive(:error) + + expect { perform_migration }.to change { vulnerability_finding_evidences.count }.by(2) + end + + context 'when create throws exception StandardError' do + before do + allow(migration).to receive(:create_evidences).and_raise(StandardError) + end + + it 'logs StandardError' do + expect(Gitlab::AppLogger).to receive(:error).with({ + class: described_class.name, message: StandardError.to_s + }) + expect { perform_migration }.not_to change { vulnerability_finding_evidences.count } + end + end + + context 'when parse throws exception JSON::ParserError' do + before do + allow(Gitlab::Json).to receive(:parse).and_raise(JSON::ParserError) + end + + it 'does not log this error nor create new records' do + expect(Gitlab::AppLogger).not_to receive(:error) + + expect { perform_migration }.not_to change { vulnerability_finding_evidences.count } + end + end + end + + context 'with existing evidence records' do + let!(:finding) { create_finding!(project1.id, scanner1.id, { evidence: evidence_hash }) } + + before do + vulnerability_finding_evidences.create!(vulnerability_occurrence_id: finding.id, data: evidence_hash) + end + + it 'does not create new evidence' do + expect(Gitlab::AppLogger).not_to receive(:error) + + expect { perform_migration }.not_to change { vulnerability_finding_evidences.count } + end + + context 'with non-existing evidence' do + let!(:finding3) { create_finding!(project1.id, scanner1.id, { evidence: { url: 'http://secondary.com' } }) } + + it 'creates a new evidence only to the non-existing evidence' do + expect(Gitlab::AppLogger).not_to receive(:error) + + expect { perform_migration }.to change { vulnerability_finding_evidences.count }.by(1) + end + end + end + + private + + def create_finding!(project_id, scanner_id, raw_metadata) + vulnerability = table(:vulnerabilities).create!(project_id: project_id, author_id: user.id, title: 'test', + severity: 4, confidence: 4, report_type: 0) + + identifier = table(:vulnerability_identifiers).create!(project_id: project_id, external_type: 'uuid-v5', + external_id: 'uuid-v5', fingerprint: OpenSSL::Digest::SHA256.hexdigest(vulnerability.id.to_s), + name: 'Identifier for UUIDv5 2 2') + + table(:vulnerability_occurrences).create!( + vulnerability_id: vulnerability.id, project_id: project_id, scanner_id: scanner_id, + primary_identifier_id: identifier.id, name: 'test', severity: 4, confidence: 4, report_type: 0, + uuid: SecureRandom.uuid, project_fingerprint: '123qweasdzxc', location: { "image" => "alpine:3.4" }, + location_fingerprint: 'test', metadata_version: 'test', + raw_metadata: raw_metadata.to_json) + end +end diff --git a/spec/lib/gitlab/database/migrations/batched_background_migration_helpers_spec.rb b/spec/lib/gitlab/database/migrations/batched_background_migration_helpers_spec.rb index 3e249b14f2e..5003efb9308 100644 --- a/spec/lib/gitlab/database/migrations/batched_background_migration_helpers_spec.rb +++ b/spec/lib/gitlab/database/migrations/batched_background_migration_helpers_spec.rb @@ -482,16 +482,35 @@ RSpec.describe Gitlab::Database::Migrations::BatchedBackgroundMigrationHelpers d .not_to raise_error end - it 'logs a warning when migration does not exist' do - expect(Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas).to receive(:require_dml_mode!) + context 'when specified migration does not exist' do + let(:lab_key) { 'DBLAB_ENVIRONMENT' } - create(:batched_background_migration, :active, migration_attributes.merge(gitlab_schema: :gitlab_something_else)) + context 'when DBLAB_ENVIRONMENT is not set' do + it 'logs a warning' do + stub_env(lab_key, nil) + expect(Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas).to receive(:require_dml_mode!) - expect(Gitlab::AppLogger).to receive(:warn) - .with("Could not find batched background migration for the given configuration: #{configuration}") + create(:batched_background_migration, :active, migration_attributes.merge(gitlab_schema: :gitlab_something_else)) - expect { ensure_batched_background_migration_is_finished } - .not_to raise_error + expect(Gitlab::AppLogger).to receive(:warn) + .with("Could not find batched background migration for the given configuration: #{configuration}") + + expect { ensure_batched_background_migration_is_finished } + .not_to raise_error + end + end + + context 'when DBLAB_ENVIRONMENT is set' do + it 'raises an error' do + stub_env(lab_key, 'foo') + expect(Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas).to receive(:require_dml_mode!) + + create(:batched_background_migration, :active, migration_attributes.merge(gitlab_schema: :gitlab_something_else)) + + expect { ensure_batched_background_migration_is_finished } + .to raise_error(Gitlab::Database::Migrations::BatchedBackgroundMigrationHelpers::NonExistentMigrationError) + end + end end it 'finalizes the migration' do diff --git a/spec/migrations/20230224144233_migrate_evidences_from_raw_metadata_spec.rb b/spec/migrations/20230224144233_migrate_evidences_from_raw_metadata_spec.rb new file mode 100644 index 00000000000..9b38557c8c3 --- /dev/null +++ b/spec/migrations/20230224144233_migrate_evidences_from_raw_metadata_spec.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +require 'spec_helper' +require_migration! + +RSpec.describe MigrateEvidencesFromRawMetadata, :migration, feature_category: :vulnerability_management do + let(:migration) { described_class::MIGRATION } + + describe '#up' do + it 'schedules a batched background migration' do + migrate! + + expect(migration).to have_scheduled_batched_migration( + table_name: :vulnerability_occurrences, + column_name: :id, + interval: described_class::DELAY_INTERVAL, + batch_size: described_class::BATCH_SIZE, + sub_batch_size: described_class::SUB_BATCH_SIZE + ) + end + end + + describe '#down' do + it 'deletes all batched migration records' do + migrate! + schema_migrate_down! + + expect(migration).not_to have_scheduled_batched_migration + end + end +end diff --git a/spec/models/error_tracking/project_error_tracking_setting_spec.rb b/spec/models/error_tracking/project_error_tracking_setting_spec.rb index d612c8f6e8b..34be6ec7fa9 100644 --- a/spec/models/error_tracking/project_error_tracking_setting_spec.rb +++ b/spec/models/error_tracking/project_error_tracking_setting_spec.rb @@ -93,9 +93,7 @@ RSpec.describe ErrorTracking::ProjectErrorTrackingSetting, feature_category: :er end context 'with sentry backend' do - before do - subject.integrated = false - end + subject { build(:project_error_tracking_setting, project: project) } it 'does not create a new client key' do expect { subject.save! }.not_to change { ErrorTracking::ClientKey.count } diff --git a/spec/policies/project_hook_policy_spec.rb b/spec/policies/project_hook_policy_spec.rb index cfa7b6ee4bf..60b296e131a 100644 --- a/spec/policies/project_hook_policy_spec.rb +++ b/spec/policies/project_hook_policy_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe ProjectHookPolicy do +RSpec.describe ProjectHookPolicy, feature_category: :integrations do let_it_be(:user) { create(:user) } let(:hook) { create(:project_hook) } diff --git a/spec/requests/api/error_tracking/project_settings_spec.rb b/spec/requests/api/error_tracking/project_settings_spec.rb index 5906cdf105a..3b01dec6f9c 100644 --- a/spec/requests/api/error_tracking/project_settings_spec.rb +++ b/spec/requests/api/error_tracking/project_settings_spec.rb @@ -38,7 +38,7 @@ RSpec.describe API::ErrorTracking::ProjectSettings, feature_category: :error_tra end end - shared_examples 'returns 404' do + shared_examples 'returns no project settings' do it 'returns no project settings' do make_request @@ -48,6 +48,57 @@ RSpec.describe API::ErrorTracking::ProjectSettings, feature_category: :error_tra end end + shared_examples 'returns 400' do + it 'rejects request' do + make_request + + expect(response).to have_gitlab_http_status(:bad_request) + end + end + + shared_examples 'returns 401' do + it 'rejects request' do + make_request + + expect(response).to have_gitlab_http_status(:unauthorized) + end + end + + shared_examples 'returns 403' do + it 'rejects request' do + make_request + + expect(response).to have_gitlab_http_status(:forbidden) + end + end + + shared_examples 'returns 404' do + it 'rejects request' do + make_request + + expect(response).to have_gitlab_http_status(:not_found) + end + end + + shared_examples 'returns 400 with `integrated` param required or invalid' do |error| + it 'returns 400' do + make_request + + expect(response).to have_gitlab_http_status(:bad_request) + expect(json_response['error']) + .to eq(error) + end + end + + shared_examples "returns error from UpdateService" do + it "returns errors" do + make_request + + expect(json_response['http_status']).to eq('forbidden') + expect(json_response['message']).to eq('An error occurred') + end + end + describe "PATCH /projects/:id/error_tracking/settings" do let(:params) { { active: false } } @@ -127,14 +178,34 @@ RSpec.describe API::ErrorTracking::ProjectSettings, feature_category: :error_tra end context 'without a project setting' do - let(:project) { create(:project) } + let_it_be(:project) { create(:project) } before do project.add_maintainer(user) end context 'patch settings' do - it_behaves_like 'returns 404' + it_behaves_like 'returns no project settings' + end + end + + context "when ::Projects::Operations::UpdateService responds with an error" do + before do + allow_next_instance_of(::Projects::Operations::UpdateService) do |service| + allow(service) + .to receive(:execute) + .and_return({ status: :error, message: 'An error occurred', http_status: :forbidden }) + end + end + + context "when integrated" do + let(:integrated) { true } + + it_behaves_like 'returns error from UpdateService' + end + + context "without integrated" do + it_behaves_like 'returns error from UpdateService' end end end @@ -145,11 +216,7 @@ RSpec.describe API::ErrorTracking::ProjectSettings, feature_category: :error_tra end context 'patch request' do - it 'returns 403' do - make_request - - expect(response).to have_gitlab_http_status(:forbidden) - end + it_behaves_like 'returns 403' end end @@ -159,21 +226,13 @@ RSpec.describe API::ErrorTracking::ProjectSettings, feature_category: :error_tra end context 'patch request' do - it 'returns 403' do - make_request - - expect(response).to have_gitlab_http_status(:forbidden) - end + it_behaves_like 'returns 403' end end context 'when authenticated as non-member' do context 'patch request' do - it 'returns 404' do - make_request - - expect(response).to have_gitlab_http_status(:not_found) - end + it_behaves_like 'returns 404' end end @@ -181,11 +240,7 @@ RSpec.describe API::ErrorTracking::ProjectSettings, feature_category: :error_tra let(:user) { nil } context 'patch request' do - it 'returns 401 for update request' do - make_request - - expect(response).to have_gitlab_http_status(:unauthorized) - end + it_behaves_like 'returns 401' end end end @@ -227,7 +282,7 @@ RSpec.describe API::ErrorTracking::ProjectSettings, feature_category: :error_tra end context 'get settings' do - it_behaves_like 'returns 404' + it_behaves_like 'returns no project settings' end end @@ -236,11 +291,7 @@ RSpec.describe API::ErrorTracking::ProjectSettings, feature_category: :error_tra project.add_reporter(user) end - it 'returns 403' do - make_request - - expect(response).to have_gitlab_http_status(:forbidden) - end + it_behaves_like 'returns 403' end context 'when authenticated as developer' do @@ -248,29 +299,138 @@ RSpec.describe API::ErrorTracking::ProjectSettings, feature_category: :error_tra project.add_developer(user) end - it 'returns 403' do - make_request - - expect(response).to have_gitlab_http_status(:forbidden) - end + it_behaves_like 'returns 403' end context 'when authenticated as non-member' do - it 'returns 404' do - make_request - - expect(response).to have_gitlab_http_status(:not_found) - end + it_behaves_like 'returns 404' end context 'when unauthenticated' do let(:user) { nil } - it 'returns 401' do - make_request + it_behaves_like 'returns 401' + end + end + + describe "PUT /projects/:id/error_tracking/settings" do + let(:params) { { active: active, integrated: integrated } } + let(:active) { true } + let(:integrated) { true } + + def make_request + put api("/projects/#{project.id}/error_tracking/settings", user), params: params + end + + context 'when authenticated' do + context 'as maintainer' do + before do + project.add_maintainer(user) + end + + context "when integrated" do + let(:integrated) { true } + + context "with existing setting" do + let(:setting) { create(:project_error_tracking_setting, :integrated) } + let(:active) { false } + + it "updates a setting" do + expect { make_request }.not_to change { ErrorTracking::ProjectErrorTrackingSetting.count } + + expect(response).to have_gitlab_http_status(:ok) + + expect(json_response).to eq( + "active" => false, + "api_url" => nil, + "integrated" => integrated, + "project_name" => nil, + "sentry_external_url" => nil + ) + end + end + + context "without setting" do + let(:active) { true } + let_it_be(:project) { create(:project) } + + it "creates a setting" do + expect { make_request }.to change { ErrorTracking::ProjectErrorTrackingSetting.count } + + expect(response).to have_gitlab_http_status(:ok) + + expect(json_response).to eq( + "active" => true, + "api_url" => nil, + "integrated" => integrated, + "project_name" => nil, + "sentry_external_url" => nil + ) + end + end + + context "when ::Projects::Operations::UpdateService responds with an error" do + before do + allow_next_instance_of(::Projects::Operations::UpdateService) do |service| + allow(service) + .to receive(:execute) + .and_return({ status: :error, message: 'An error occurred', http_status: :forbidden }) + end + end + + it_behaves_like 'returns error from UpdateService' + end + end - expect(response).to have_gitlab_http_status(:unauthorized) + context "integrated_error_tracking feature disabled" do + let(:integrated) { true } + + before do + stub_feature_flags(integrated_error_tracking: false) + end + + it_behaves_like 'returns 404' + end + + context "when integrated param is invalid" do + let(:params) { { active: active, integrated: 'invalid_string' } } + + it_behaves_like 'returns 400 with `integrated` param required or invalid', 'integrated is invalid' + end + + context "when integrated param is missing" do + let(:params) { { active: active } } + + it_behaves_like 'returns 400 with `integrated` param required or invalid', 'integrated is missing' + end + end + + context 'as reporter' do + before do + project.add_reporter(user) + end + + it_behaves_like 'returns 403' + end + + context "as developer" do + before do + project.add_developer(user) + end + + it_behaves_like 'returns 403' end + + context 'as non-member' do + it_behaves_like 'returns 404' + end + end + + context "when unauthorized" do + let(:user) { nil } + let(:integrated) { true } + + it_behaves_like 'returns 401' end end end diff --git a/spec/services/merge_requests/add_context_service_spec.rb b/spec/services/merge_requests/add_context_service_spec.rb index 448be27efe8..5fca2c17a3c 100644 --- a/spec/services/merge_requests/add_context_service_spec.rb +++ b/spec/services/merge_requests/add_context_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::AddContextService do +RSpec.describe MergeRequests::AddContextService, feature_category: :code_review_workflow do let(:project) { create(:project, :repository) } let(:admin) { create(:admin) } let(:merge_request) { create(:merge_request, source_project: project, target_project: project, author: admin) } diff --git a/spec/services/merge_requests/add_spent_time_service_spec.rb b/spec/services/merge_requests/add_spent_time_service_spec.rb index 1e0b3e07f26..5d6d33c14d7 100644 --- a/spec/services/merge_requests/add_spent_time_service_spec.rb +++ b/spec/services/merge_requests/add_spent_time_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::AddSpentTimeService do +RSpec.describe MergeRequests::AddSpentTimeService, feature_category: :code_review_workflow do let_it_be(:user) { create(:user) } let_it_be(:project) { create(:project, :public, :repository) } let_it_be_with_reload(:merge_request) { create(:merge_request, :simple, :unique_branches, source_project: project) } diff --git a/spec/services/merge_requests/add_todo_when_build_fails_service_spec.rb b/spec/services/merge_requests/add_todo_when_build_fails_service_spec.rb index 8d1abe5ea89..3c37792b576 100644 --- a/spec/services/merge_requests/add_todo_when_build_fails_service_spec.rb +++ b/spec/services/merge_requests/add_todo_when_build_fails_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe ::MergeRequests::AddTodoWhenBuildFailsService do +RSpec.describe ::MergeRequests::AddTodoWhenBuildFailsService, feature_category: :code_review_workflow do let(:user) { create(:user) } let(:project) { create(:project, :repository) } let(:sha) { '1234567890abcdef1234567890abcdef12345678' } diff --git a/spec/services/merge_requests/approval_service_spec.rb b/spec/services/merge_requests/approval_service_spec.rb index 1d6427900b9..6140021c8d2 100644 --- a/spec/services/merge_requests/approval_service_spec.rb +++ b/spec/services/merge_requests/approval_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::ApprovalService do +RSpec.describe MergeRequests::ApprovalService, feature_category: :code_review_workflow do describe '#execute' do let(:user) { create(:user) } let(:merge_request) { create(:merge_request, reviewers: [user]) } diff --git a/spec/services/merge_requests/assign_issues_service_spec.rb b/spec/services/merge_requests/assign_issues_service_spec.rb index cf405c0102e..f5fb88b6161 100644 --- a/spec/services/merge_requests/assign_issues_service_spec.rb +++ b/spec/services/merge_requests/assign_issues_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::AssignIssuesService do +RSpec.describe MergeRequests::AssignIssuesService, feature_category: :code_review_workflow do let(:user) { create(:user) } let(:project) { create(:project, :public, :repository) } let(:issue) { create(:issue, project: project) } diff --git a/spec/services/merge_requests/cleanup_refs_service_spec.rb b/spec/services/merge_requests/cleanup_refs_service_spec.rb index e8690ae5bf2..960b8101c36 100644 --- a/spec/services/merge_requests/cleanup_refs_service_spec.rb +++ b/spec/services/merge_requests/cleanup_refs_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::CleanupRefsService do +RSpec.describe MergeRequests::CleanupRefsService, feature_category: :code_review_workflow do describe '.schedule' do let(:merge_request) { create(:merge_request) } diff --git a/spec/services/merge_requests/conflicts/list_service_spec.rb b/spec/services/merge_requests/conflicts/list_service_spec.rb index 5132eac0158..5eb53b1bcba 100644 --- a/spec/services/merge_requests/conflicts/list_service_spec.rb +++ b/spec/services/merge_requests/conflicts/list_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::Conflicts::ListService do +RSpec.describe MergeRequests::Conflicts::ListService, feature_category: :code_review_workflow do describe '#can_be_resolved_in_ui?' do def create_merge_request(source_branch, target_branch = 'conflict-start') create(:merge_request, source_branch: source_branch, target_branch: target_branch, merge_status: :unchecked) do |mr| diff --git a/spec/services/merge_requests/conflicts/resolve_service_spec.rb b/spec/services/merge_requests/conflicts/resolve_service_spec.rb index 0abc70f71b0..e11cccaa54a 100644 --- a/spec/services/merge_requests/conflicts/resolve_service_spec.rb +++ b/spec/services/merge_requests/conflicts/resolve_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::Conflicts::ResolveService do +RSpec.describe MergeRequests::Conflicts::ResolveService, feature_category: :code_review_workflow do include ProjectForksHelper let(:user) { create(:user) } let(:project) { create(:project, :public, :repository) } diff --git a/spec/services/merge_requests/create_approval_event_service_spec.rb b/spec/services/merge_requests/create_approval_event_service_spec.rb index 3d41ace11a7..4876c992337 100644 --- a/spec/services/merge_requests/create_approval_event_service_spec.rb +++ b/spec/services/merge_requests/create_approval_event_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::CreateApprovalEventService do +RSpec.describe MergeRequests::CreateApprovalEventService, feature_category: :code_review_workflow do let(:user) { create(:user) } let(:merge_request) { create(:merge_request) } let(:project) { merge_request.project } diff --git a/spec/services/merge_requests/create_pipeline_service_spec.rb b/spec/services/merge_requests/create_pipeline_service_spec.rb index f11e3d0d1df..9c2321a2f16 100644 --- a/spec/services/merge_requests/create_pipeline_service_spec.rb +++ b/spec/services/merge_requests/create_pipeline_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::CreatePipelineService, :clean_gitlab_redis_cache do +RSpec.describe MergeRequests::CreatePipelineService, :clean_gitlab_redis_cache, feature_category: :code_review_workflow do include ProjectForksHelper let_it_be(:project, refind: true) { create(:project, :repository) } diff --git a/spec/services/merge_requests/delete_non_latest_diffs_service_spec.rb b/spec/services/merge_requests/delete_non_latest_diffs_service_spec.rb index d2070a466b1..d9e60911ada 100644 --- a/spec/services/merge_requests/delete_non_latest_diffs_service_spec.rb +++ b/spec/services/merge_requests/delete_non_latest_diffs_service_spec.rb @@ -2,7 +2,8 @@ require 'spec_helper' -RSpec.describe MergeRequests::DeleteNonLatestDiffsService, :clean_gitlab_redis_shared_state do +RSpec.describe MergeRequests::DeleteNonLatestDiffsService, :clean_gitlab_redis_shared_state, + feature_category: :code_review_workflow do let(:merge_request) { create(:merge_request) } let!(:subject) { described_class.new(merge_request) } diff --git a/spec/services/merge_requests/execute_approval_hooks_service_spec.rb b/spec/services/merge_requests/execute_approval_hooks_service_spec.rb index 863c47e8191..9f460648b05 100644 --- a/spec/services/merge_requests/execute_approval_hooks_service_spec.rb +++ b/spec/services/merge_requests/execute_approval_hooks_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::ExecuteApprovalHooksService do +RSpec.describe MergeRequests::ExecuteApprovalHooksService, feature_category: :code_review_workflow do let(:user) { create(:user) } let(:merge_request) { create(:merge_request) } let(:project) { merge_request.project } diff --git a/spec/services/merge_requests/ff_merge_service_spec.rb b/spec/services/merge_requests/ff_merge_service_spec.rb index 5027acbba0a..993b7cfa85b 100644 --- a/spec/services/merge_requests/ff_merge_service_spec.rb +++ b/spec/services/merge_requests/ff_merge_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::FfMergeService do +RSpec.describe MergeRequests::FfMergeService, feature_category: :code_review_workflow do let(:user) { create(:user) } let(:user2) { create(:user) } let(:merge_request) do diff --git a/spec/services/merge_requests/get_urls_service_spec.rb b/spec/services/merge_requests/get_urls_service_spec.rb index 5f81e1728fa..31b3e513a51 100644 --- a/spec/services/merge_requests/get_urls_service_spec.rb +++ b/spec/services/merge_requests/get_urls_service_spec.rb @@ -2,7 +2,7 @@ require "spec_helper" -RSpec.describe MergeRequests::GetUrlsService do +RSpec.describe MergeRequests::GetUrlsService, feature_category: :code_review_workflow do include ProjectForksHelper let(:project) { create(:project, :public, :repository) } diff --git a/spec/services/merge_requests/handle_assignees_change_service_spec.rb b/spec/services/merge_requests/handle_assignees_change_service_spec.rb index 3db3efedb84..951e59afe7f 100644 --- a/spec/services/merge_requests/handle_assignees_change_service_spec.rb +++ b/spec/services/merge_requests/handle_assignees_change_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::HandleAssigneesChangeService do +RSpec.describe MergeRequests::HandleAssigneesChangeService, feature_category: :code_review_workflow do let_it_be(:project) { create(:project, :repository) } let_it_be(:user) { create(:user) } let_it_be(:assignee) { create(:user) } diff --git a/spec/services/merge_requests/mark_reviewer_reviewed_service_spec.rb b/spec/services/merge_requests/mark_reviewer_reviewed_service_spec.rb index 8437876c3cf..172c2133168 100644 --- a/spec/services/merge_requests/mark_reviewer_reviewed_service_spec.rb +++ b/spec/services/merge_requests/mark_reviewer_reviewed_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::MarkReviewerReviewedService do +RSpec.describe MergeRequests::MarkReviewerReviewedService, feature_category: :code_review_workflow do let(:current_user) { create(:user) } let(:merge_request) { create(:merge_request, reviewers: [current_user]) } let(:reviewer) { merge_request.merge_request_reviewers.find_by(user_id: current_user.id) } diff --git a/spec/services/merge_requests/merge_orchestration_service_spec.rb b/spec/services/merge_requests/merge_orchestration_service_spec.rb index ebcd2f0e277..41da7abfeab 100644 --- a/spec/services/merge_requests/merge_orchestration_service_spec.rb +++ b/spec/services/merge_requests/merge_orchestration_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::MergeOrchestrationService do +RSpec.describe MergeRequests::MergeOrchestrationService, feature_category: :code_review_workflow do let_it_be(:maintainer) { create(:user) } let(:merge_params) { { sha: merge_request.diff_head_sha } } diff --git a/spec/services/merge_requests/merge_service_spec.rb b/spec/services/merge_requests/merge_service_spec.rb index d3bf203d6bb..f380357a659 100644 --- a/spec/services/merge_requests/merge_service_spec.rb +++ b/spec/services/merge_requests/merge_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::MergeService do +RSpec.describe MergeRequests::MergeService, feature_category: :code_review_workflow do include ExclusiveLeaseHelpers let_it_be(:user) { create(:user) } diff --git a/spec/services/merge_requests/merge_to_ref_service_spec.rb b/spec/services/merge_requests/merge_to_ref_service_spec.rb index 19fac3b5095..8428848c3c8 100644 --- a/spec/services/merge_requests/merge_to_ref_service_spec.rb +++ b/spec/services/merge_requests/merge_to_ref_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::MergeToRefService do +RSpec.describe MergeRequests::MergeToRefService, feature_category: :code_review_workflow do shared_examples_for 'MergeService for target ref' do it 'target_ref has the same state of target branch' do repo = merge_request.target_project.repository diff --git a/spec/services/merge_requests/mergeability/check_base_service_spec.rb b/spec/services/merge_requests/mergeability/check_base_service_spec.rb index f07522b43cb..806bde61c23 100644 --- a/spec/services/merge_requests/mergeability/check_base_service_spec.rb +++ b/spec/services/merge_requests/mergeability/check_base_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::Mergeability::CheckBaseService do +RSpec.describe MergeRequests::Mergeability::CheckBaseService, feature_category: :code_review_workflow do subject(:check_base_service) { described_class.new(merge_request: merge_request, params: params) } let(:merge_request) { double } diff --git a/spec/services/merge_requests/mergeability/check_broken_status_service_spec.rb b/spec/services/merge_requests/mergeability/check_broken_status_service_spec.rb index 6cc1079c94a..b6ee1049bb9 100644 --- a/spec/services/merge_requests/mergeability/check_broken_status_service_spec.rb +++ b/spec/services/merge_requests/mergeability/check_broken_status_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::Mergeability::CheckBrokenStatusService do +RSpec.describe MergeRequests::Mergeability::CheckBrokenStatusService, feature_category: :code_review_workflow do subject(:check_broken_status) { described_class.new(merge_request: merge_request, params: {}) } let(:merge_request) { build(:merge_request) } diff --git a/spec/services/merge_requests/mergeability/check_ci_status_service_spec.rb b/spec/services/merge_requests/mergeability/check_ci_status_service_spec.rb index def3cb0ca28..cf835cf70a3 100644 --- a/spec/services/merge_requests/mergeability/check_ci_status_service_spec.rb +++ b/spec/services/merge_requests/mergeability/check_ci_status_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::Mergeability::CheckCiStatusService do +RSpec.describe MergeRequests::Mergeability::CheckCiStatusService, feature_category: :code_review_workflow do subject(:check_ci_status) { described_class.new(merge_request: merge_request, params: params) } let(:merge_request) { build(:merge_request) } diff --git a/spec/services/merge_requests/mergeability/check_discussions_status_service_spec.rb b/spec/services/merge_requests/mergeability/check_discussions_status_service_spec.rb index 9f107ce046a..a3b77558ec3 100644 --- a/spec/services/merge_requests/mergeability/check_discussions_status_service_spec.rb +++ b/spec/services/merge_requests/mergeability/check_discussions_status_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::Mergeability::CheckDiscussionsStatusService do +RSpec.describe MergeRequests::Mergeability::CheckDiscussionsStatusService, feature_category: :code_review_workflow do subject(:check_discussions_status) { described_class.new(merge_request: merge_request, params: params) } let(:merge_request) { build(:merge_request) } diff --git a/spec/services/merge_requests/mergeability/check_draft_status_service_spec.rb b/spec/services/merge_requests/mergeability/check_draft_status_service_spec.rb index e9363e5d676..cb624705a02 100644 --- a/spec/services/merge_requests/mergeability/check_draft_status_service_spec.rb +++ b/spec/services/merge_requests/mergeability/check_draft_status_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::Mergeability::CheckDraftStatusService do +RSpec.describe MergeRequests::Mergeability::CheckDraftStatusService, feature_category: :code_review_workflow do subject(:check_draft_status) { described_class.new(merge_request: merge_request, params: {}) } let(:merge_request) { build(:merge_request) } diff --git a/spec/services/merge_requests/mergeability/check_open_status_service_spec.rb b/spec/services/merge_requests/mergeability/check_open_status_service_spec.rb index 936524b020a..53ad77ea4df 100644 --- a/spec/services/merge_requests/mergeability/check_open_status_service_spec.rb +++ b/spec/services/merge_requests/mergeability/check_open_status_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::Mergeability::CheckOpenStatusService do +RSpec.describe MergeRequests::Mergeability::CheckOpenStatusService, feature_category: :code_review_workflow do subject(:check_open_status) { described_class.new(merge_request: merge_request, params: {}) } let(:merge_request) { build(:merge_request) } diff --git a/spec/services/merge_requests/mergeability/detailed_merge_status_service_spec.rb b/spec/services/merge_requests/mergeability/detailed_merge_status_service_spec.rb index 5722bb79cc5..876b1e7f23a 100644 --- a/spec/services/merge_requests/mergeability/detailed_merge_status_service_spec.rb +++ b/spec/services/merge_requests/mergeability/detailed_merge_status_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe ::MergeRequests::Mergeability::DetailedMergeStatusService do +RSpec.describe ::MergeRequests::Mergeability::DetailedMergeStatusService, feature_category: :code_review_workflow do subject(:detailed_merge_status) { described_class.new(merge_request: merge_request).execute } context 'when merge status is cannot_be_merged_rechecking' do diff --git a/spec/services/merge_requests/mergeability/logger_spec.rb b/spec/services/merge_requests/mergeability/logger_spec.rb index 3e2a1e9f9fd..1f56b6bebdb 100644 --- a/spec/services/merge_requests/mergeability/logger_spec.rb +++ b/spec/services/merge_requests/mergeability/logger_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::Mergeability::Logger, :request_store do +RSpec.describe MergeRequests::Mergeability::Logger, :request_store, feature_category: :code_review_workflow do let_it_be(:merge_request) { create(:merge_request) } subject(:logger) { described_class.new(merge_request: merge_request) } diff --git a/spec/services/merge_requests/mergeability/run_checks_service_spec.rb b/spec/services/merge_requests/mergeability/run_checks_service_spec.rb index c56b38bccc1..bfff582994b 100644 --- a/spec/services/merge_requests/mergeability/run_checks_service_spec.rb +++ b/spec/services/merge_requests/mergeability/run_checks_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::Mergeability::RunChecksService, :clean_gitlab_redis_cache do +RSpec.describe MergeRequests::Mergeability::RunChecksService, :clean_gitlab_redis_cache, feature_category: :code_review_workflow do subject(:run_checks) { described_class.new(merge_request: merge_request, params: {}) } describe '#execute' do diff --git a/spec/services/merge_requests/mergeability_check_service_spec.rb b/spec/services/merge_requests/mergeability_check_service_spec.rb index ee23238314e..881157e7f11 100644 --- a/spec/services/merge_requests/mergeability_check_service_spec.rb +++ b/spec/services/merge_requests/mergeability_check_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::MergeabilityCheckService, :clean_gitlab_redis_shared_state do +RSpec.describe MergeRequests::MergeabilityCheckService, :clean_gitlab_redis_shared_state, feature_category: :code_review_workflow do shared_examples_for 'unmergeable merge request' do it 'updates or keeps merge status as cannot_be_merged' do subject diff --git a/spec/services/merge_requests/migrate_external_diffs_service_spec.rb b/spec/services/merge_requests/migrate_external_diffs_service_spec.rb index 6ea8626ba73..c7f78dfa992 100644 --- a/spec/services/merge_requests/migrate_external_diffs_service_spec.rb +++ b/spec/services/merge_requests/migrate_external_diffs_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::MigrateExternalDiffsService do +RSpec.describe MergeRequests::MigrateExternalDiffsService, feature_category: :code_review_workflow do let(:merge_request) { create(:merge_request) } let(:diff) { merge_request.merge_request_diff } diff --git a/spec/services/merge_requests/post_merge_service_spec.rb b/spec/services/merge_requests/post_merge_service_spec.rb index e486daae15e..d89bfba5129 100644 --- a/spec/services/merge_requests/post_merge_service_spec.rb +++ b/spec/services/merge_requests/post_merge_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::PostMergeService do +RSpec.describe MergeRequests::PostMergeService, feature_category: :code_review_workflow do include ProjectForksHelper let_it_be(:user) { create(:user) } diff --git a/spec/services/merge_requests/push_options_handler_service_spec.rb b/spec/services/merge_requests/push_options_handler_service_spec.rb index 251bf6f0d9d..7ca795ecd1a 100644 --- a/spec/services/merge_requests/push_options_handler_service_spec.rb +++ b/spec/services/merge_requests/push_options_handler_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::PushOptionsHandlerService do +RSpec.describe MergeRequests::PushOptionsHandlerService, feature_category: :source_code_management do include ProjectForksHelper let_it_be(:parent_group) { create(:group, :public) } diff --git a/spec/services/merge_requests/reload_diffs_service_spec.rb b/spec/services/merge_requests/reload_diffs_service_spec.rb index 3d5b65207e6..4dd05f75a3e 100644 --- a/spec/services/merge_requests/reload_diffs_service_spec.rb +++ b/spec/services/merge_requests/reload_diffs_service_spec.rb @@ -2,7 +2,8 @@ require 'spec_helper' -RSpec.describe MergeRequests::ReloadDiffsService, :use_clean_rails_memory_store_caching do +RSpec.describe MergeRequests::ReloadDiffsService, :use_clean_rails_memory_store_caching, +feature_category: :code_review_workflow do let(:current_user) { create(:user) } let(:merge_request) { create(:merge_request) } let(:subject) { described_class.new(merge_request, current_user) } diff --git a/spec/services/merge_requests/reload_merge_head_diff_service_spec.rb b/spec/services/merge_requests/reload_merge_head_diff_service_spec.rb index 20b5cf5e3a1..1c315f12221 100644 --- a/spec/services/merge_requests/reload_merge_head_diff_service_spec.rb +++ b/spec/services/merge_requests/reload_merge_head_diff_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::ReloadMergeHeadDiffService do +RSpec.describe MergeRequests::ReloadMergeHeadDiffService, feature_category: :code_review_workflow do let(:merge_request) { create(:merge_request) } subject { described_class.new(merge_request).execute } diff --git a/spec/services/merge_requests/reopen_service_spec.rb b/spec/services/merge_requests/reopen_service_spec.rb index b9df31b6727..6d30dd39293 100644 --- a/spec/services/merge_requests/reopen_service_spec.rb +++ b/spec/services/merge_requests/reopen_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::ReopenService do +RSpec.describe MergeRequests::ReopenService, feature_category: :code_review_workflow do let(:user) { create(:user) } let(:user2) { create(:user) } let(:guest) { create(:user) } diff --git a/spec/services/merge_requests/request_review_service_spec.rb b/spec/services/merge_requests/request_review_service_spec.rb index 1d3f92b083f..ef96bf11e0b 100644 --- a/spec/services/merge_requests/request_review_service_spec.rb +++ b/spec/services/merge_requests/request_review_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::RequestReviewService do +RSpec.describe MergeRequests::RequestReviewService, feature_category: :code_review_workflow do let(:current_user) { create(:user) } let(:user) { create(:user) } let(:merge_request) { create(:merge_request, reviewers: [user]) } diff --git a/spec/services/merge_requests/resolve_todos_service_spec.rb b/spec/services/merge_requests/resolve_todos_service_spec.rb index 53bd259f0f4..de7ddbea8bb 100644 --- a/spec/services/merge_requests/resolve_todos_service_spec.rb +++ b/spec/services/merge_requests/resolve_todos_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::ResolveTodosService do +RSpec.describe MergeRequests::ResolveTodosService, feature_category: :code_review_workflow do let_it_be(:merge_request) { create(:merge_request) } let_it_be(:user) { create(:user) } diff --git a/spec/services/merge_requests/resolved_discussion_notification_service_spec.rb b/spec/services/merge_requests/resolved_discussion_notification_service_spec.rb index 2f191f2ee44..c3a99431dcc 100644 --- a/spec/services/merge_requests/resolved_discussion_notification_service_spec.rb +++ b/spec/services/merge_requests/resolved_discussion_notification_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::ResolvedDiscussionNotificationService do +RSpec.describe MergeRequests::ResolvedDiscussionNotificationService, feature_category: :code_review_workflow do let(:merge_request) { create(:merge_request) } let(:user) { create(:user) } let(:project) { merge_request.project } diff --git a/spec/services/merge_requests/squash_service_spec.rb b/spec/services/merge_requests/squash_service_spec.rb index 471bb03f18c..26e225db9fc 100644 --- a/spec/services/merge_requests/squash_service_spec.rb +++ b/spec/services/merge_requests/squash_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::SquashService do +RSpec.describe MergeRequests::SquashService, feature_category: :source_code_management do let(:service) { described_class.new(project: project, current_user: user, params: { merge_request: merge_request }) } let(:user) { project.first_owner } let(:project) { create(:project, :repository) } diff --git a/spec/services/merge_requests/update_assignees_service_spec.rb b/spec/services/merge_requests/update_assignees_service_spec.rb index 2d80d75a262..7d08eb86441 100644 --- a/spec/services/merge_requests/update_assignees_service_spec.rb +++ b/spec/services/merge_requests/update_assignees_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::UpdateAssigneesService do +RSpec.describe MergeRequests::UpdateAssigneesService, feature_category: :code_review_workflow do include AfterNextHelpers let_it_be(:group) { create(:group, :public) } diff --git a/spec/services/merge_requests/update_reviewers_service_spec.rb b/spec/services/merge_requests/update_reviewers_service_spec.rb index 9f935e1cecf..ed2d448b523 100644 --- a/spec/services/merge_requests/update_reviewers_service_spec.rb +++ b/spec/services/merge_requests/update_reviewers_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::UpdateReviewersService do +RSpec.describe MergeRequests::UpdateReviewersService, feature_category: :code_review_workflow do include AfterNextHelpers let_it_be(:group) { create(:group, :public) } diff --git a/spec/services/metrics/dashboard/annotations/create_service_spec.rb b/spec/services/metrics/dashboard/annotations/create_service_spec.rb index 8f5484fcabe..2bcfa54ead7 100644 --- a/spec/services/metrics/dashboard/annotations/create_service_spec.rb +++ b/spec/services/metrics/dashboard/annotations/create_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Metrics::Dashboard::Annotations::CreateService do +RSpec.describe Metrics::Dashboard::Annotations::CreateService, feature_category: :metrics do let_it_be(:user) { create(:user) } let(:description) { 'test annotation' } diff --git a/spec/services/metrics/dashboard/annotations/delete_service_spec.rb b/spec/services/metrics/dashboard/annotations/delete_service_spec.rb index ec2bd3772bf..557d6d95767 100644 --- a/spec/services/metrics/dashboard/annotations/delete_service_spec.rb +++ b/spec/services/metrics/dashboard/annotations/delete_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Metrics::Dashboard::Annotations::DeleteService do +RSpec.describe Metrics::Dashboard::Annotations::DeleteService, feature_category: :metrics do let(:user) { create(:user) } let(:service_instance) { described_class.new(user, annotation) } diff --git a/spec/services/metrics/dashboard/clone_dashboard_service_spec.rb b/spec/services/metrics/dashboard/clone_dashboard_service_spec.rb index 47e5557105b..40ec37c393d 100644 --- a/spec/services/metrics/dashboard/clone_dashboard_service_spec.rb +++ b/spec/services/metrics/dashboard/clone_dashboard_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Metrics::Dashboard::CloneDashboardService, :use_clean_rails_memory_store_caching do +RSpec.describe Metrics::Dashboard::CloneDashboardService, :use_clean_rails_memory_store_caching, feature_category: :metrics do include MetricsDashboardHelpers let_it_be(:user) { create(:user) } diff --git a/spec/services/metrics/dashboard/cluster_dashboard_service_spec.rb b/spec/services/metrics/dashboard/cluster_dashboard_service_spec.rb index f2e32d5eb35..beed23a366f 100644 --- a/spec/services/metrics/dashboard/cluster_dashboard_service_spec.rb +++ b/spec/services/metrics/dashboard/cluster_dashboard_service_spec.rb @@ -2,7 +2,8 @@ require 'spec_helper' -RSpec.describe Metrics::Dashboard::ClusterDashboardService, :use_clean_rails_memory_store_caching do +RSpec.describe Metrics::Dashboard::ClusterDashboardService, :use_clean_rails_memory_store_caching, + feature_category: :metrics do include MetricsDashboardHelpers let_it_be(:user) { create(:user) } diff --git a/spec/services/metrics/dashboard/cluster_metrics_embed_service_spec.rb b/spec/services/metrics/dashboard/cluster_metrics_embed_service_spec.rb index dbb89af45d0..5d63505e5cc 100644 --- a/spec/services/metrics/dashboard/cluster_metrics_embed_service_spec.rb +++ b/spec/services/metrics/dashboard/cluster_metrics_embed_service_spec.rb @@ -2,7 +2,8 @@ require 'spec_helper' -RSpec.describe Metrics::Dashboard::ClusterMetricsEmbedService, :use_clean_rails_memory_store_caching do +RSpec.describe Metrics::Dashboard::ClusterMetricsEmbedService, :use_clean_rails_memory_store_caching, + feature_category: :metrics do include MetricsDashboardHelpers using RSpec::Parameterized::TableSyntax diff --git a/spec/services/metrics/dashboard/custom_dashboard_service_spec.rb b/spec/services/metrics/dashboard/custom_dashboard_service_spec.rb index afeb1646005..940daa38ae7 100644 --- a/spec/services/metrics/dashboard/custom_dashboard_service_spec.rb +++ b/spec/services/metrics/dashboard/custom_dashboard_service_spec.rb @@ -2,7 +2,8 @@ require 'spec_helper' -RSpec.describe Metrics::Dashboard::CustomDashboardService, :use_clean_rails_memory_store_caching do +RSpec.describe Metrics::Dashboard::CustomDashboardService, :use_clean_rails_memory_store_caching, + feature_category: :metrics do include MetricsDashboardHelpers let_it_be(:user) { create(:user) } diff --git a/spec/services/metrics/dashboard/custom_metric_embed_service_spec.rb b/spec/services/metrics/dashboard/custom_metric_embed_service_spec.rb index 127cec6275c..8117296b048 100644 --- a/spec/services/metrics/dashboard/custom_metric_embed_service_spec.rb +++ b/spec/services/metrics/dashboard/custom_metric_embed_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Metrics::Dashboard::CustomMetricEmbedService do +RSpec.describe Metrics::Dashboard::CustomMetricEmbedService, feature_category: :metrics do include MetricsDashboardHelpers let_it_be(:project, reload: true) { build(:project) } diff --git a/spec/services/metrics/dashboard/default_embed_service_spec.rb b/spec/services/metrics/dashboard/default_embed_service_spec.rb index 647778eadc1..6ef248f6b09 100644 --- a/spec/services/metrics/dashboard/default_embed_service_spec.rb +++ b/spec/services/metrics/dashboard/default_embed_service_spec.rb @@ -2,7 +2,8 @@ require 'spec_helper' -RSpec.describe Metrics::Dashboard::DefaultEmbedService, :use_clean_rails_memory_store_caching do +RSpec.describe Metrics::Dashboard::DefaultEmbedService, :use_clean_rails_memory_store_caching, + feature_category: :metrics do include MetricsDashboardHelpers let_it_be(:project) { build(:project) } diff --git a/spec/services/metrics/dashboard/dynamic_embed_service_spec.rb b/spec/services/metrics/dashboard/dynamic_embed_service_spec.rb index 5eb8f24266c..1643f552a70 100644 --- a/spec/services/metrics/dashboard/dynamic_embed_service_spec.rb +++ b/spec/services/metrics/dashboard/dynamic_embed_service_spec.rb @@ -2,7 +2,8 @@ require 'spec_helper' -RSpec.describe Metrics::Dashboard::DynamicEmbedService, :use_clean_rails_memory_store_caching do +RSpec.describe Metrics::Dashboard::DynamicEmbedService, :use_clean_rails_memory_store_caching, + feature_category: :metrics do include MetricsDashboardHelpers let_it_be(:project) { build(:project) } diff --git a/spec/services/metrics/dashboard/gitlab_alert_embed_service_spec.rb b/spec/services/metrics/dashboard/gitlab_alert_embed_service_spec.rb index 2905e4599f3..25812a492b2 100644 --- a/spec/services/metrics/dashboard/gitlab_alert_embed_service_spec.rb +++ b/spec/services/metrics/dashboard/gitlab_alert_embed_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Metrics::Dashboard::GitlabAlertEmbedService do +RSpec.describe Metrics::Dashboard::GitlabAlertEmbedService, feature_category: :metrics do include MetricsDashboardHelpers let_it_be(:alert) { create(:prometheus_alert) } diff --git a/spec/services/metrics/dashboard/grafana_metric_embed_service_spec.rb b/spec/services/metrics/dashboard/grafana_metric_embed_service_spec.rb index 5263fd40a40..877a455ea44 100644 --- a/spec/services/metrics/dashboard/grafana_metric_embed_service_spec.rb +++ b/spec/services/metrics/dashboard/grafana_metric_embed_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Metrics::Dashboard::GrafanaMetricEmbedService do +RSpec.describe Metrics::Dashboard::GrafanaMetricEmbedService, feature_category: :metrics do include MetricsDashboardHelpers include ReactiveCachingHelpers include GrafanaApiHelpers diff --git a/spec/services/metrics/dashboard/panel_preview_service_spec.rb b/spec/services/metrics/dashboard/panel_preview_service_spec.rb index 787c61cc918..2a70c667ee5 100644 --- a/spec/services/metrics/dashboard/panel_preview_service_spec.rb +++ b/spec/services/metrics/dashboard/panel_preview_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Metrics::Dashboard::PanelPreviewService do +RSpec.describe Metrics::Dashboard::PanelPreviewService, feature_category: :metrics do let_it_be(:project) { create(:project) } let_it_be(:environment) { create(:environment, project: project) } let_it_be(:panel_yml) do diff --git a/spec/services/metrics/dashboard/pod_dashboard_service_spec.rb b/spec/services/metrics/dashboard/pod_dashboard_service_spec.rb index 0ea812e93ee..d26b27d7a18 100644 --- a/spec/services/metrics/dashboard/pod_dashboard_service_spec.rb +++ b/spec/services/metrics/dashboard/pod_dashboard_service_spec.rb @@ -2,7 +2,8 @@ require 'spec_helper' -RSpec.describe Metrics::Dashboard::PodDashboardService, :use_clean_rails_memory_store_caching do +RSpec.describe Metrics::Dashboard::PodDashboardService, :use_clean_rails_memory_store_caching, + feature_category: :pods do include MetricsDashboardHelpers let_it_be(:user) { create(:user) } diff --git a/spec/services/metrics/dashboard/self_monitoring_dashboard_service_spec.rb b/spec/services/metrics/dashboard/self_monitoring_dashboard_service_spec.rb index d0cefdbeb30..930789ed701 100644 --- a/spec/services/metrics/dashboard/self_monitoring_dashboard_service_spec.rb +++ b/spec/services/metrics/dashboard/self_monitoring_dashboard_service_spec.rb @@ -2,7 +2,8 @@ require 'spec_helper' -RSpec.describe Metrics::Dashboard::SelfMonitoringDashboardService, :use_clean_rails_memory_store_caching do +RSpec.describe Metrics::Dashboard::SelfMonitoringDashboardService, :use_clean_rails_memory_store_caching, + feature_category: :metrics do include MetricsDashboardHelpers let_it_be(:user) { create(:user) } diff --git a/spec/services/metrics/dashboard/system_dashboard_service_spec.rb b/spec/services/metrics/dashboard/system_dashboard_service_spec.rb index e1c6aaeec66..b08b980e50e 100644 --- a/spec/services/metrics/dashboard/system_dashboard_service_spec.rb +++ b/spec/services/metrics/dashboard/system_dashboard_service_spec.rb @@ -2,7 +2,8 @@ require 'spec_helper' -RSpec.describe Metrics::Dashboard::SystemDashboardService, :use_clean_rails_memory_store_caching do +RSpec.describe Metrics::Dashboard::SystemDashboardService, :use_clean_rails_memory_store_caching, + feature_category: :metrics do include MetricsDashboardHelpers let_it_be(:user) { create(:user) } diff --git a/spec/services/metrics/dashboard/transient_embed_service_spec.rb b/spec/services/metrics/dashboard/transient_embed_service_spec.rb index 53ea83c33d6..1e3ccde6ae3 100644 --- a/spec/services/metrics/dashboard/transient_embed_service_spec.rb +++ b/spec/services/metrics/dashboard/transient_embed_service_spec.rb @@ -2,7 +2,8 @@ require 'spec_helper' -RSpec.describe Metrics::Dashboard::TransientEmbedService, :use_clean_rails_memory_store_caching do +RSpec.describe Metrics::Dashboard::TransientEmbedService, :use_clean_rails_memory_store_caching, + feature_category: :metrics do let_it_be(:project) { build(:project) } let_it_be(:user) { create(:user) } let_it_be(:environment) { create(:environment, project: project) } diff --git a/spec/services/metrics/dashboard/update_dashboard_service_spec.rb b/spec/services/metrics/dashboard/update_dashboard_service_spec.rb index 148005480ea..15bbe9f9364 100644 --- a/spec/services/metrics/dashboard/update_dashboard_service_spec.rb +++ b/spec/services/metrics/dashboard/update_dashboard_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Metrics::Dashboard::UpdateDashboardService, :use_clean_rails_memory_store_caching do +RSpec.describe Metrics::Dashboard::UpdateDashboardService, :use_clean_rails_memory_store_caching, feature_category: :metrics do include MetricsDashboardHelpers let_it_be(:user) { create(:user) } diff --git a/spec/services/metrics/sample_metrics_service_spec.rb b/spec/services/metrics/sample_metrics_service_spec.rb index b94345500f0..3442b4303db 100644 --- a/spec/services/metrics/sample_metrics_service_spec.rb +++ b/spec/services/metrics/sample_metrics_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Metrics::SampleMetricsService do +RSpec.describe Metrics::SampleMetricsService, feature_category: :metrics do describe 'query' do let(:range_start) { '2019-12-02T23:31:45.000Z' } let(:range_end) { '2019-12-03T00:01:45.000Z' } diff --git a/spec/services/metrics/users_starred_dashboards/create_service_spec.rb b/spec/services/metrics/users_starred_dashboards/create_service_spec.rb index 1435e39e458..e08bdca8410 100644 --- a/spec/services/metrics/users_starred_dashboards/create_service_spec.rb +++ b/spec/services/metrics/users_starred_dashboards/create_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Metrics::UsersStarredDashboards::CreateService do +RSpec.describe Metrics::UsersStarredDashboards::CreateService, feature_category: :metrics do let_it_be(:user) { create(:user) } let(:dashboard_path) { 'config/prometheus/common_metrics.yml' } diff --git a/spec/services/metrics/users_starred_dashboards/delete_service_spec.rb b/spec/services/metrics/users_starred_dashboards/delete_service_spec.rb index 5cdffe681eb..8c4bcecc239 100644 --- a/spec/services/metrics/users_starred_dashboards/delete_service_spec.rb +++ b/spec/services/metrics/users_starred_dashboards/delete_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Metrics::UsersStarredDashboards::DeleteService do +RSpec.describe Metrics::UsersStarredDashboards::DeleteService, feature_category: :metrics do subject(:service_instance) { described_class.new(user, project, dashboard_path) } let_it_be(:user) { create(:user) } diff --git a/spec/services/milestones/close_service_spec.rb b/spec/services/milestones/close_service_spec.rb index 53751b40667..f362c8da642 100644 --- a/spec/services/milestones/close_service_spec.rb +++ b/spec/services/milestones/close_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Milestones::CloseService do +RSpec.describe Milestones::CloseService, feature_category: :team_planning do let(:user) { create(:user) } let(:project) { create(:project) } let(:milestone) { create(:milestone, title: "Milestone v1.2", project: project) } diff --git a/spec/services/milestones/closed_issues_count_service_spec.rb b/spec/services/milestones/closed_issues_count_service_spec.rb index a3865d08972..f0ed0872c2d 100644 --- a/spec/services/milestones/closed_issues_count_service_spec.rb +++ b/spec/services/milestones/closed_issues_count_service_spec.rb @@ -2,7 +2,8 @@ require 'spec_helper' -RSpec.describe Milestones::ClosedIssuesCountService, :use_clean_rails_memory_store_caching do +RSpec.describe Milestones::ClosedIssuesCountService, :use_clean_rails_memory_store_caching, + feature_category: :team_planning do let(:project) { create(:project) } let(:milestone) { create(:milestone, project: project) } diff --git a/spec/services/milestones/create_service_spec.rb b/spec/services/milestones/create_service_spec.rb index 93ca4ff653f..78cb05532eb 100644 --- a/spec/services/milestones/create_service_spec.rb +++ b/spec/services/milestones/create_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Milestones::CreateService do +RSpec.describe Milestones::CreateService, feature_category: :team_planning do let(:project) { create(:project) } let(:user) { create(:user) } diff --git a/spec/services/milestones/destroy_service_spec.rb b/spec/services/milestones/destroy_service_spec.rb index 6c08b7db43a..209177c348b 100644 --- a/spec/services/milestones/destroy_service_spec.rb +++ b/spec/services/milestones/destroy_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Milestones::DestroyService do +RSpec.describe Milestones::DestroyService, feature_category: :team_planning do let(:user) { create(:user) } let(:project) { create(:project, :repository) } let(:milestone) { create(:milestone, title: 'Milestone v1.0', project: project) } diff --git a/spec/services/milestones/find_or_create_service_spec.rb b/spec/services/milestones/find_or_create_service_spec.rb index 1bcaf578441..8a72778a22a 100644 --- a/spec/services/milestones/find_or_create_service_spec.rb +++ b/spec/services/milestones/find_or_create_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Milestones::FindOrCreateService do +RSpec.describe Milestones::FindOrCreateService, feature_category: :team_planning do describe '#execute' do subject(:service) { described_class.new(project, user, params) } diff --git a/spec/services/milestones/issues_count_service_spec.rb b/spec/services/milestones/issues_count_service_spec.rb index c944055e4e7..a80b27822b6 100644 --- a/spec/services/milestones/issues_count_service_spec.rb +++ b/spec/services/milestones/issues_count_service_spec.rb @@ -2,7 +2,8 @@ require 'spec_helper' -RSpec.describe Milestones::IssuesCountService, :use_clean_rails_memory_store_caching do +RSpec.describe Milestones::IssuesCountService, :use_clean_rails_memory_store_caching, + feature_category: :team_planning do let(:project) { create(:project) } let(:milestone) { create(:milestone, project: project) } diff --git a/spec/services/milestones/merge_requests_count_service_spec.rb b/spec/services/milestones/merge_requests_count_service_spec.rb index aecc7d5ef52..00b7b95aeb6 100644 --- a/spec/services/milestones/merge_requests_count_service_spec.rb +++ b/spec/services/milestones/merge_requests_count_service_spec.rb @@ -2,7 +2,8 @@ require 'spec_helper' -RSpec.describe Milestones::MergeRequestsCountService, :use_clean_rails_memory_store_caching do +RSpec.describe Milestones::MergeRequestsCountService, :use_clean_rails_memory_store_caching, + feature_category: :team_planning do let_it_be(:project) { create(:project, :empty_repo) } let_it_be(:milestone) { create(:milestone, project: project) } diff --git a/spec/services/milestones/promote_service_spec.rb b/spec/services/milestones/promote_service_spec.rb index 8f4201d8d94..203ac2d3f40 100644 --- a/spec/services/milestones/promote_service_spec.rb +++ b/spec/services/milestones/promote_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Milestones::PromoteService do +RSpec.describe Milestones::PromoteService, feature_category: :team_planning do let(:group) { create(:group) } let(:project) { create(:project, namespace: group) } let(:user) { create(:user) } diff --git a/spec/services/milestones/transfer_service_spec.rb b/spec/services/milestones/transfer_service_spec.rb index de02226661c..ea65f713902 100644 --- a/spec/services/milestones/transfer_service_spec.rb +++ b/spec/services/milestones/transfer_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Milestones::TransferService do +RSpec.describe Milestones::TransferService, feature_category: :team_planning do describe '#execute' do subject(:service) { described_class.new(user, old_group, project) } diff --git a/spec/services/milestones/update_service_spec.rb b/spec/services/milestones/update_service_spec.rb index 85fd89c11ac..76110af2514 100644 --- a/spec/services/milestones/update_service_spec.rb +++ b/spec/services/milestones/update_service_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -RSpec.describe Milestones::UpdateService do +RSpec.describe Milestones::UpdateService, feature_category: :team_planning do let(:project) { create(:project) } let(:user) { build(:user) } let(:milestone) { create(:milestone, project: project) } diff --git a/spec/services/ml/experiment_tracking/candidate_repository_spec.rb b/spec/services/ml/experiment_tracking/candidate_repository_spec.rb index e3c05178025..45a4792426c 100644 --- a/spec/services/ml/experiment_tracking/candidate_repository_spec.rb +++ b/spec/services/ml/experiment_tracking/candidate_repository_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe ::Ml::ExperimentTracking::CandidateRepository do +RSpec.describe ::Ml::ExperimentTracking::CandidateRepository, feature_category: :experimentation_activation do let_it_be(:project) { create(:project) } let_it_be(:user) { create(:user) } let_it_be(:experiment) { create(:ml_experiments, user: user, project: project) } diff --git a/spec/services/ml/experiment_tracking/experiment_repository_spec.rb b/spec/services/ml/experiment_tracking/experiment_repository_spec.rb index c3c716b831a..3c645fa84b4 100644 --- a/spec/services/ml/experiment_tracking/experiment_repository_spec.rb +++ b/spec/services/ml/experiment_tracking/experiment_repository_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe ::Ml::ExperimentTracking::ExperimentRepository do +RSpec.describe ::Ml::ExperimentTracking::ExperimentRepository, feature_category: :experimentation_activation do let_it_be(:project) { create(:project) } let_it_be(:user) { create(:user) } let_it_be(:experiment) { create(:ml_experiments, user: user, project: project) } diff --git a/spec/services/namespace_settings/update_service_spec.rb b/spec/services/namespace_settings/update_service_spec.rb index e0f32cb3821..5f1ff6746bc 100644 --- a/spec/services/namespace_settings/update_service_spec.rb +++ b/spec/services/namespace_settings/update_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe NamespaceSettings::UpdateService do +RSpec.describe NamespaceSettings::UpdateService, feature_category: :subgroups do let(:user) { create(:user) } let(:group) { create(:group) } let(:settings) { {} } diff --git a/spec/services/namespaces/in_product_marketing_emails_service_spec.rb b/spec/services/namespaces/in_product_marketing_emails_service_spec.rb index b44c256802f..8a2ecd5c3e0 100644 --- a/spec/services/namespaces/in_product_marketing_emails_service_spec.rb +++ b/spec/services/namespaces/in_product_marketing_emails_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Namespaces::InProductMarketingEmailsService, '#execute' do +RSpec.describe Namespaces::InProductMarketingEmailsService, '#execute', feature_category: :purchase do subject(:execute_service) { described_class.new(track, interval).execute } let(:track) { :create } diff --git a/spec/services/namespaces/package_settings/update_service_spec.rb b/spec/services/namespaces/package_settings/update_service_spec.rb index 10926c5ef57..e21c9a8f1b9 100644 --- a/spec/services/namespaces/package_settings/update_service_spec.rb +++ b/spec/services/namespaces/package_settings/update_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe ::Namespaces::PackageSettings::UpdateService do +RSpec.describe ::Namespaces::PackageSettings::UpdateService, feature_category: :package_registry do using RSpec::Parameterized::TableSyntax let_it_be_with_reload(:namespace) { create(:group) } diff --git a/spec/services/namespaces/statistics_refresher_service_spec.rb b/spec/services/namespaces/statistics_refresher_service_spec.rb index 2d5f9235bd4..750f98615cc 100644 --- a/spec/services/namespaces/statistics_refresher_service_spec.rb +++ b/spec/services/namespaces/statistics_refresher_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Namespaces::StatisticsRefresherService, '#execute' do +RSpec.describe Namespaces::StatisticsRefresherService, '#execute', feature_category: :subgroups do let(:group) { create(:group) } let(:subgroup) { create(:group, parent: group) } let(:projects) { create_list(:project, 5, namespace: group) } diff --git a/spec/services/notes/build_service_spec.rb b/spec/services/notes/build_service_spec.rb index 67d8b37f809..97c736e373b 100644 --- a/spec/services/notes/build_service_spec.rb +++ b/spec/services/notes/build_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Notes::BuildService do +RSpec.describe Notes::BuildService, feature_category: :team_planning do include AdminModeHelper let_it_be(:project) { create(:project, :repository) } diff --git a/spec/services/notes/copy_service_spec.rb b/spec/services/notes/copy_service_spec.rb index 2fa9a462bb9..5a48f6e7560 100644 --- a/spec/services/notes/copy_service_spec.rb +++ b/spec/services/notes/copy_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Notes::CopyService do +RSpec.describe Notes::CopyService, feature_category: :team_planning do describe '#initialize' do let_it_be(:noteable) { create(:issue) } diff --git a/spec/services/notes/destroy_service_spec.rb b/spec/services/notes/destroy_service_spec.rb index 744808525f5..43132b4221f 100644 --- a/spec/services/notes/destroy_service_spec.rb +++ b/spec/services/notes/destroy_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Notes::DestroyService do +RSpec.describe Notes::DestroyService, feature_category: :team_planning do let_it_be(:project) { create(:project, :public) } let_it_be(:issue) { create(:issue, project: project) } diff --git a/spec/services/notes/post_process_service_spec.rb b/spec/services/notes/post_process_service_spec.rb index 17001733c5b..0bcfd6b63d2 100644 --- a/spec/services/notes/post_process_service_spec.rb +++ b/spec/services/notes/post_process_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Notes::PostProcessService do +RSpec.describe Notes::PostProcessService, feature_category: :team_planning do let(:project) { create(:project) } let(:issue) { create(:issue, project: project) } let(:user) { create(:user) } diff --git a/spec/services/notes/quick_actions_service_spec.rb b/spec/services/notes/quick_actions_service_spec.rb index 0791b5855ec..b474285e67e 100644 --- a/spec/services/notes/quick_actions_service_spec.rb +++ b/spec/services/notes/quick_actions_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Notes::QuickActionsService do +RSpec.describe Notes::QuickActionsService, feature_category: :team_planning do shared_context 'note on noteable' do let_it_be(:project) { create(:project, :repository) } let_it_be(:maintainer) { create(:user).tap { |u| project.add_maintainer(u) } } diff --git a/spec/services/notes/render_service_spec.rb b/spec/services/notes/render_service_spec.rb index 09cd7dc572b..8ebecddffa7 100644 --- a/spec/services/notes/render_service_spec.rb +++ b/spec/services/notes/render_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Notes::RenderService do +RSpec.describe Notes::RenderService, feature_category: :team_planning do describe '#execute' do it 'renders a Note' do note = double(:note) diff --git a/spec/services/notes/resolve_service_spec.rb b/spec/services/notes/resolve_service_spec.rb index 1c5b308aed1..1b5586ee1b3 100644 --- a/spec/services/notes/resolve_service_spec.rb +++ b/spec/services/notes/resolve_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Notes::ResolveService do +RSpec.describe Notes::ResolveService, feature_category: :team_planning do let(:merge_request) { create(:merge_request) } let(:note) { create(:diff_note_on_merge_request, noteable: merge_request, project: merge_request.project) } let(:user) { merge_request.author } diff --git a/spec/services/notes/update_service_spec.rb b/spec/services/notes/update_service_spec.rb index 05703ac548d..0d5a0ae7706 100644 --- a/spec/services/notes/update_service_spec.rb +++ b/spec/services/notes/update_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Notes::UpdateService do +RSpec.describe Notes::UpdateService, feature_category: :team_planning do let(:group) { create(:group, :public) } let(:project) { create(:project, :public, group: group) } let(:private_group) { create(:group, :private) } diff --git a/spec/services/notification_recipients/build_service_spec.rb b/spec/services/notification_recipients/build_service_spec.rb index 899d23ec641..bfd1dcd7d80 100644 --- a/spec/services/notification_recipients/build_service_spec.rb +++ b/spec/services/notification_recipients/build_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe NotificationRecipients::BuildService do +RSpec.describe NotificationRecipients::BuildService, feature_category: :team_planning do let(:service) { described_class } let(:assignee) { create(:user) } let(:project) { create(:project, :public) } diff --git a/spec/services/notification_recipients/builder/default_spec.rb b/spec/services/notification_recipients/builder/default_spec.rb index 4d0ddc7c4f7..da991b5951a 100644 --- a/spec/services/notification_recipients/builder/default_spec.rb +++ b/spec/services/notification_recipients/builder/default_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe NotificationRecipients::Builder::Default do +RSpec.describe NotificationRecipients::Builder::Default, feature_category: :team_planning do describe '#build!' do let_it_be(:group) { create(:group, :public) } let_it_be(:project) { create(:project, :public, group: group).tap { |p| p.add_developer(project_watcher) if project_watcher } } diff --git a/spec/services/notification_recipients/builder/new_note_spec.rb b/spec/services/notification_recipients/builder/new_note_spec.rb index 7d2a4f682c5..e87824f3156 100644 --- a/spec/services/notification_recipients/builder/new_note_spec.rb +++ b/spec/services/notification_recipients/builder/new_note_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe NotificationRecipients::Builder::NewNote do +RSpec.describe NotificationRecipients::Builder::NewNote, feature_category: :team_planning do describe '#notification_recipients' do let_it_be(:group) { create(:group, :public) } let_it_be(:project) { create(:project, :public, group: group) } diff --git a/spec/services/onboarding/progress_service_spec.rb b/spec/services/onboarding/progress_service_spec.rb index 8f3f723613e..e1d6b4cd44b 100644 --- a/spec/services/onboarding/progress_service_spec.rb +++ b/spec/services/onboarding/progress_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Onboarding::ProgressService do +RSpec.describe Onboarding::ProgressService, feature_category: :onboarding do describe '.async' do let_it_be(:namespace) { create(:namespace) } let_it_be(:action) { :git_pull } diff --git a/spec/services/packages/cleanup/execute_policy_service_spec.rb b/spec/services/packages/cleanup/execute_policy_service_spec.rb index 93335c4a821..a083dc0d4ea 100644 --- a/spec/services/packages/cleanup/execute_policy_service_spec.rb +++ b/spec/services/packages/cleanup/execute_policy_service_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -RSpec.describe Packages::Cleanup::ExecutePolicyService do +RSpec.describe Packages::Cleanup::ExecutePolicyService, feature_category: :package_registry do let_it_be(:project) { create(:project) } let_it_be_with_reload(:policy) { create(:packages_cleanup_policy, project: project) } diff --git a/spec/services/packages/cleanup/update_policy_service_spec.rb b/spec/services/packages/cleanup/update_policy_service_spec.rb index a11fbb766f5..8068c351e5f 100644 --- a/spec/services/packages/cleanup/update_policy_service_spec.rb +++ b/spec/services/packages/cleanup/update_policy_service_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -RSpec.describe Packages::Cleanup::UpdatePolicyService do +RSpec.describe Packages::Cleanup::UpdatePolicyService, feature_category: :package_registry do using RSpec::Parameterized::TableSyntax let_it_be_with_reload(:project) { create(:project) } diff --git a/spec/services/packages/composer/composer_json_service_spec.rb b/spec/services/packages/composer/composer_json_service_spec.rb index d2187688c4c..15acd79c49e 100644 --- a/spec/services/packages/composer/composer_json_service_spec.rb +++ b/spec/services/packages/composer/composer_json_service_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -RSpec.describe Packages::Composer::ComposerJsonService do +RSpec.describe Packages::Composer::ComposerJsonService, feature_category: :package_registry do describe '#execute' do let(:branch) { project.repository.find_branch('master') } let(:target) { branch.target } diff --git a/spec/services/packages/composer/create_package_service_spec.rb b/spec/services/packages/composer/create_package_service_spec.rb index 26429a7b5d9..78d5d76fe4f 100644 --- a/spec/services/packages/composer/create_package_service_spec.rb +++ b/spec/services/packages/composer/create_package_service_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -RSpec.describe Packages::Composer::CreatePackageService do +RSpec.describe Packages::Composer::CreatePackageService, feature_category: :package_registry do include PackagesManagerApiSpecHelpers let_it_be(:package_name) { 'composer-package-name' } diff --git a/spec/services/packages/composer/version_parser_service_spec.rb b/spec/services/packages/composer/version_parser_service_spec.rb index 69253ff934e..ac50f2e2e55 100644 --- a/spec/services/packages/composer/version_parser_service_spec.rb +++ b/spec/services/packages/composer/version_parser_service_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -RSpec.describe Packages::Composer::VersionParserService do +RSpec.describe Packages::Composer::VersionParserService, feature_category: :package_registry do let_it_be(:params) { {} } describe '#execute' do diff --git a/spec/services/packages/conan/create_package_file_service_spec.rb b/spec/services/packages/conan/create_package_file_service_spec.rb index e655b8d1f9e..6859e52560a 100644 --- a/spec/services/packages/conan/create_package_file_service_spec.rb +++ b/spec/services/packages/conan/create_package_file_service_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -RSpec.describe Packages::Conan::CreatePackageFileService do +RSpec.describe Packages::Conan::CreatePackageFileService, feature_category: :package_registry do include WorkhorseHelpers let_it_be(:package) { create(:conan_package) } diff --git a/spec/services/packages/conan/create_package_service_spec.rb b/spec/services/packages/conan/create_package_service_spec.rb index 6f644f5ef95..db06463b7fa 100644 --- a/spec/services/packages/conan/create_package_service_spec.rb +++ b/spec/services/packages/conan/create_package_service_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -RSpec.describe Packages::Conan::CreatePackageService do +RSpec.describe Packages::Conan::CreatePackageService, feature_category: :package_registry do let_it_be(:project) { create(:project) } let_it_be(:user) { create(:user) } diff --git a/spec/services/packages/create_dependency_service_spec.rb b/spec/services/packages/create_dependency_service_spec.rb index f95e21cd045..06a7a13bdd9 100644 --- a/spec/services/packages/create_dependency_service_spec.rb +++ b/spec/services/packages/create_dependency_service_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -RSpec.describe Packages::CreateDependencyService do +RSpec.describe Packages::CreateDependencyService, feature_category: :package_registry do describe '#execute' do let_it_be(:namespace) { create(:namespace) } let_it_be(:version) { '1.0.1' } diff --git a/spec/services/packages/create_event_service_spec.rb b/spec/services/packages/create_event_service_spec.rb index 58fa68b11fe..44ad3f29c58 100644 --- a/spec/services/packages/create_event_service_spec.rb +++ b/spec/services/packages/create_event_service_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -RSpec.describe Packages::CreateEventService do +RSpec.describe Packages::CreateEventService, feature_category: :package_registry do let(:scope) { 'generic' } let(:event_name) { 'push_package' } diff --git a/spec/services/packages/create_package_file_service_spec.rb b/spec/services/packages/create_package_file_service_spec.rb index 2ff00ea8568..5b4ea3e1530 100644 --- a/spec/services/packages/create_package_file_service_spec.rb +++ b/spec/services/packages/create_package_file_service_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -RSpec.describe Packages::CreatePackageFileService do +RSpec.describe Packages::CreatePackageFileService, feature_category: :package_registry do let_it_be(:package) { create(:maven_package) } let_it_be(:user) { create(:user) } diff --git a/spec/services/packages/create_temporary_package_service_spec.rb b/spec/services/packages/create_temporary_package_service_spec.rb index 4b8d37401d8..be8b5afc1e0 100644 --- a/spec/services/packages/create_temporary_package_service_spec.rb +++ b/spec/services/packages/create_temporary_package_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Packages::CreateTemporaryPackageService do +RSpec.describe Packages::CreateTemporaryPackageService, feature_category: :package_registry do let_it_be(:project) { create(:project) } let_it_be(:user) { create(:user) } let_it_be(:params) { {} } diff --git a/spec/services/packages/generic/create_package_file_service_spec.rb b/spec/services/packages/generic/create_package_file_service_spec.rb index 9d6784b7721..08c4cbdbe11 100644 --- a/spec/services/packages/generic/create_package_file_service_spec.rb +++ b/spec/services/packages/generic/create_package_file_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Packages::Generic::CreatePackageFileService do +RSpec.describe Packages::Generic::CreatePackageFileService, feature_category: :package_registry do let_it_be(:project) { create(:project) } let_it_be(:user) { create(:user) } let_it_be(:pipeline) { create(:ci_pipeline, user: user) } diff --git a/spec/services/packages/generic/find_or_create_package_service_spec.rb b/spec/services/packages/generic/find_or_create_package_service_spec.rb index 10ec917bc99..07054fe3651 100644 --- a/spec/services/packages/generic/find_or_create_package_service_spec.rb +++ b/spec/services/packages/generic/find_or_create_package_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Packages::Generic::FindOrCreatePackageService do +RSpec.describe Packages::Generic::FindOrCreatePackageService, feature_category: :package_registry do let_it_be(:project) { create(:project) } let_it_be(:user) { create(:user) } let_it_be(:ci_build) { create(:ci_build, :running, user: user) } diff --git a/spec/services/packages/go/create_package_service_spec.rb b/spec/services/packages/go/create_package_service_spec.rb index 4ca1119fbaa..f552af81077 100644 --- a/spec/services/packages/go/create_package_service_spec.rb +++ b/spec/services/packages/go/create_package_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Packages::Go::CreatePackageService do +RSpec.describe Packages::Go::CreatePackageService, feature_category: :package_registry do let_it_be(:project) { create :project_empty_repo, path: 'my-go-lib' } let_it_be(:mod) { create :go_module, project: project } diff --git a/spec/services/packages/go/sync_packages_service_spec.rb b/spec/services/packages/go/sync_packages_service_spec.rb index 565b0f252ce..2881b6fdac9 100644 --- a/spec/services/packages/go/sync_packages_service_spec.rb +++ b/spec/services/packages/go/sync_packages_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Packages::Go::SyncPackagesService do +RSpec.describe Packages::Go::SyncPackagesService, feature_category: :package_registry do include_context 'basic Go module' let(:params) { { info: true, mod: true, zip: true } } diff --git a/spec/services/packages/helm/extract_file_metadata_service_spec.rb b/spec/services/packages/helm/extract_file_metadata_service_spec.rb index f4c61c12344..861d326d12a 100644 --- a/spec/services/packages/helm/extract_file_metadata_service_spec.rb +++ b/spec/services/packages/helm/extract_file_metadata_service_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -RSpec.describe Packages::Helm::ExtractFileMetadataService do +RSpec.describe Packages::Helm::ExtractFileMetadataService, feature_category: :package_registry do let_it_be(:package_file) { create(:helm_package_file) } let(:service) { described_class.new(package_file) } diff --git a/spec/services/packages/helm/process_file_service_spec.rb b/spec/services/packages/helm/process_file_service_spec.rb index 1be0153a4a5..a1f53e8756c 100644 --- a/spec/services/packages/helm/process_file_service_spec.rb +++ b/spec/services/packages/helm/process_file_service_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -RSpec.describe Packages::Helm::ProcessFileService do +RSpec.describe Packages::Helm::ProcessFileService, feature_category: :package_registry do let(:package) { create(:helm_package, without_package_files: true, status: 'processing') } let!(:package_file) { create(:helm_package_file, without_loaded_metadatum: true, package: package) } let(:channel) { 'stable' } diff --git a/spec/services/packages/mark_package_files_for_destruction_service_spec.rb b/spec/services/packages/mark_package_files_for_destruction_service_spec.rb index 66534338003..a00a0b79854 100644 --- a/spec/services/packages/mark_package_files_for_destruction_service_spec.rb +++ b/spec/services/packages/mark_package_files_for_destruction_service_spec.rb @@ -2,7 +2,8 @@ require 'spec_helper' -RSpec.describe Packages::MarkPackageFilesForDestructionService, :aggregate_failures do +RSpec.describe Packages::MarkPackageFilesForDestructionService, :aggregate_failures, + feature_category: :package_registry do let(:service) { described_class.new(package_files) } describe '#execute', :aggregate_failures do diff --git a/spec/services/packages/mark_package_for_destruction_service_spec.rb b/spec/services/packages/mark_package_for_destruction_service_spec.rb index 80c9ea89414..d65e62b84a6 100644 --- a/spec/services/packages/mark_package_for_destruction_service_spec.rb +++ b/spec/services/packages/mark_package_for_destruction_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Packages::MarkPackageForDestructionService do +RSpec.describe Packages::MarkPackageForDestructionService, feature_category: :package_registry do let_it_be(:user) { create(:user) } let_it_be_with_reload(:package) { create(:npm_package) } diff --git a/spec/services/packages/mark_packages_for_destruction_service_spec.rb b/spec/services/packages/mark_packages_for_destruction_service_spec.rb index f2c1168747a..22278f9927d 100644 --- a/spec/services/packages/mark_packages_for_destruction_service_spec.rb +++ b/spec/services/packages/mark_packages_for_destruction_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Packages::MarkPackagesForDestructionService, :sidekiq_inline do +RSpec.describe Packages::MarkPackagesForDestructionService, :sidekiq_inline, feature_category: :package_registry do let_it_be(:project) { create(:project) } let_it_be_with_reload(:packages) { create_list(:npm_package, 3, project: project) } diff --git a/spec/services/packages/maven/create_package_service_spec.rb b/spec/services/packages/maven/create_package_service_spec.rb index 11bf00c1399..2c528c3591e 100644 --- a/spec/services/packages/maven/create_package_service_spec.rb +++ b/spec/services/packages/maven/create_package_service_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -RSpec.describe Packages::Maven::CreatePackageService do +RSpec.describe Packages::Maven::CreatePackageService, feature_category: :package_registry do let(:project) { create(:project) } let(:user) { create(:user) } let(:app_name) { 'my-app' } diff --git a/spec/services/packages/maven/find_or_create_package_service_spec.rb b/spec/services/packages/maven/find_or_create_package_service_spec.rb index cca074e2fa6..acaf1ce9ab8 100644 --- a/spec/services/packages/maven/find_or_create_package_service_spec.rb +++ b/spec/services/packages/maven/find_or_create_package_service_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -RSpec.describe Packages::Maven::FindOrCreatePackageService do +RSpec.describe Packages::Maven::FindOrCreatePackageService, feature_category: :package_registry do let_it_be(:project) { create(:project) } let_it_be(:user) { create(:user) } diff --git a/spec/services/packages/maven/metadata/append_package_file_service_spec.rb b/spec/services/packages/maven/metadata/append_package_file_service_spec.rb index f3a90d31158..f65029f7b64 100644 --- a/spec/services/packages/maven/metadata/append_package_file_service_spec.rb +++ b/spec/services/packages/maven/metadata/append_package_file_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe ::Packages::Maven::Metadata::AppendPackageFileService do +RSpec.describe ::Packages::Maven::Metadata::AppendPackageFileService, feature_category: :package_registry do let_it_be(:package) { create(:maven_package, version: nil) } let(:service) { described_class.new(package: package, metadata_content: content) } diff --git a/spec/services/packages/maven/metadata/create_plugins_xml_service_spec.rb b/spec/services/packages/maven/metadata/create_plugins_xml_service_spec.rb index 6fc1087940d..d0ef037b2d9 100644 --- a/spec/services/packages/maven/metadata/create_plugins_xml_service_spec.rb +++ b/spec/services/packages/maven/metadata/create_plugins_xml_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe ::Packages::Maven::Metadata::CreatePluginsXmlService do +RSpec.describe ::Packages::Maven::Metadata::CreatePluginsXmlService, feature_category: :package_registry do let_it_be(:group_id) { 'my/test' } let_it_be(:package) { create(:maven_package, name: group_id, version: nil) } diff --git a/spec/services/packages/maven/metadata/create_versions_xml_service_spec.rb b/spec/services/packages/maven/metadata/create_versions_xml_service_spec.rb index 70c2bbad87a..6ae84b5df4e 100644 --- a/spec/services/packages/maven/metadata/create_versions_xml_service_spec.rb +++ b/spec/services/packages/maven/metadata/create_versions_xml_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe ::Packages::Maven::Metadata::CreateVersionsXmlService do +RSpec.describe ::Packages::Maven::Metadata::CreateVersionsXmlService, feature_category: :package_registry do let_it_be(:package) { create(:maven_package, version: nil) } let(:versions_in_database) { %w[1.3 2.0-SNAPSHOT 1.6 1.4 1.5-SNAPSHOT] } diff --git a/spec/services/packages/maven/metadata/sync_service_spec.rb b/spec/services/packages/maven/metadata/sync_service_spec.rb index 9a704d749b3..eaed54d959b 100644 --- a/spec/services/packages/maven/metadata/sync_service_spec.rb +++ b/spec/services/packages/maven/metadata/sync_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe ::Packages::Maven::Metadata::SyncService do +RSpec.describe ::Packages::Maven::Metadata::SyncService, feature_category: :package_registry do using RSpec::Parameterized::TableSyntax let_it_be(:project) { create(:project) } diff --git a/spec/services/packages/npm/create_package_service_spec.rb b/spec/services/packages/npm/create_package_service_spec.rb index ef8cdf2e8ab..70c79dae437 100644 --- a/spec/services/packages/npm/create_package_service_spec.rb +++ b/spec/services/packages/npm/create_package_service_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -RSpec.describe Packages::Npm::CreatePackageService do +RSpec.describe Packages::Npm::CreatePackageService, feature_category: :package_registry do let(:namespace) { create(:namespace) } let(:project) { create(:project, namespace: namespace) } let(:user) { create(:user) } diff --git a/spec/services/packages/npm/create_tag_service_spec.rb b/spec/services/packages/npm/create_tag_service_spec.rb index a4b07bf97cc..682effc9f4f 100644 --- a/spec/services/packages/npm/create_tag_service_spec.rb +++ b/spec/services/packages/npm/create_tag_service_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -RSpec.describe Packages::Npm::CreateTagService do +RSpec.describe Packages::Npm::CreateTagService, feature_category: :package_registry do let(:package) { create(:npm_package) } let(:tag_name) { 'test-tag' } diff --git a/spec/services/packages/nuget/create_dependency_service_spec.rb b/spec/services/packages/nuget/create_dependency_service_spec.rb index 268c8837e25..10daec8b871 100644 --- a/spec/services/packages/nuget/create_dependency_service_spec.rb +++ b/spec/services/packages/nuget/create_dependency_service_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -RSpec.describe Packages::Nuget::CreateDependencyService do +RSpec.describe Packages::Nuget::CreateDependencyService, feature_category: :package_registry do let_it_be(:package, reload: true) { create(:nuget_package) } describe '#execute' do diff --git a/spec/services/packages/nuget/metadata_extraction_service_spec.rb b/spec/services/packages/nuget/metadata_extraction_service_spec.rb index 12bab30b4a7..9177a5379d9 100644 --- a/spec/services/packages/nuget/metadata_extraction_service_spec.rb +++ b/spec/services/packages/nuget/metadata_extraction_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Packages::Nuget::MetadataExtractionService do +RSpec.describe Packages::Nuget::MetadataExtractionService, feature_category: :package_registry do let_it_be(:package_file) { create(:nuget_package).package_files.first } let(:service) { described_class.new(package_file.id) } diff --git a/spec/services/packages/nuget/search_service_spec.rb b/spec/services/packages/nuget/search_service_spec.rb index 66c91487a8f..b5f32c9b727 100644 --- a/spec/services/packages/nuget/search_service_spec.rb +++ b/spec/services/packages/nuget/search_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Packages::Nuget::SearchService do +RSpec.describe Packages::Nuget::SearchService, feature_category: :package_registry do let_it_be(:user) { create(:user) } let_it_be(:group) { create(:group) } let_it_be(:subgroup) { create(:group, parent: group) } diff --git a/spec/services/packages/nuget/sync_metadatum_service_spec.rb b/spec/services/packages/nuget/sync_metadatum_service_spec.rb index 32093c48b76..ae07f312fcc 100644 --- a/spec/services/packages/nuget/sync_metadatum_service_spec.rb +++ b/spec/services/packages/nuget/sync_metadatum_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Packages::Nuget::SyncMetadatumService do +RSpec.describe Packages::Nuget::SyncMetadatumService, feature_category: :package_registry do let_it_be(:package, reload: true) { create(:nuget_package) } let_it_be(:metadata) do { diff --git a/spec/services/packages/nuget/update_package_from_metadata_service_spec.rb b/spec/services/packages/nuget/update_package_from_metadata_service_spec.rb index 6a4dbeb10dc..3a13f2ff902 100644 --- a/spec/services/packages/nuget/update_package_from_metadata_service_spec.rb +++ b/spec/services/packages/nuget/update_package_from_metadata_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Packages::Nuget::UpdatePackageFromMetadataService, :clean_gitlab_redis_shared_state do +RSpec.describe Packages::Nuget::UpdatePackageFromMetadataService, :clean_gitlab_redis_shared_state, feature_category: :package_registry do include ExclusiveLeaseHelpers let!(:package) { create(:nuget_package, :processing, :with_symbol_package) } diff --git a/spec/services/packages/pypi/create_package_service_spec.rb b/spec/services/packages/pypi/create_package_service_spec.rb index 6794ab4d9d6..0d278e32e89 100644 --- a/spec/services/packages/pypi/create_package_service_spec.rb +++ b/spec/services/packages/pypi/create_package_service_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -RSpec.describe Packages::Pypi::CreatePackageService, :aggregate_failures do +RSpec.describe Packages::Pypi::CreatePackageService, :aggregate_failures, feature_category: :package_registry do include PackagesManagerApiSpecHelpers let_it_be(:project) { create(:project) } diff --git a/spec/services/packages/remove_tag_service_spec.rb b/spec/services/packages/remove_tag_service_spec.rb index 084635824e5..4ad478d487a 100644 --- a/spec/services/packages/remove_tag_service_spec.rb +++ b/spec/services/packages/remove_tag_service_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -RSpec.describe Packages::RemoveTagService do +RSpec.describe Packages::RemoveTagService, feature_category: :package_registry do let!(:package_tag) { create(:packages_tag) } describe '#execute' do diff --git a/spec/services/packages/rpm/parse_package_service_spec.rb b/spec/services/packages/rpm/parse_package_service_spec.rb index f330587bfa0..80907d8f43f 100644 --- a/spec/services/packages/rpm/parse_package_service_spec.rb +++ b/spec/services/packages/rpm/parse_package_service_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -RSpec.describe Packages::Rpm::ParsePackageService do +RSpec.describe Packages::Rpm::ParsePackageService, feature_category: :package_registry do let(:package_file) { File.open('spec/fixtures/packages/rpm/hello-0.0.1-1.fc29.x86_64.rpm') } describe 'dynamic private methods' do diff --git a/spec/services/packages/rpm/repository_metadata/build_filelist_xml_service_spec.rb b/spec/services/packages/rpm/repository_metadata/build_filelist_xml_service_spec.rb index d93d6ab9fcb..e0d9e192d97 100644 --- a/spec/services/packages/rpm/repository_metadata/build_filelist_xml_service_spec.rb +++ b/spec/services/packages/rpm/repository_metadata/build_filelist_xml_service_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -RSpec.describe Packages::Rpm::RepositoryMetadata::BuildFilelistXmlService do +RSpec.describe Packages::Rpm::RepositoryMetadata::BuildFilelistXmlService, feature_category: :package_registry do describe '#execute' do subject { described_class.new(data).execute } diff --git a/spec/services/packages/rpm/repository_metadata/build_other_xml_service_spec.rb b/spec/services/packages/rpm/repository_metadata/build_other_xml_service_spec.rb index 201f9e67ce9..e81a436e006 100644 --- a/spec/services/packages/rpm/repository_metadata/build_other_xml_service_spec.rb +++ b/spec/services/packages/rpm/repository_metadata/build_other_xml_service_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -RSpec.describe Packages::Rpm::RepositoryMetadata::BuildOtherXmlService do +RSpec.describe Packages::Rpm::RepositoryMetadata::BuildOtherXmlService, feature_category: :package_registry do describe '#execute' do subject { described_class.new(data).execute } diff --git a/spec/services/packages/rpm/repository_metadata/build_primary_xml_service_spec.rb b/spec/services/packages/rpm/repository_metadata/build_primary_xml_service_spec.rb index 9bbfa5c9863..1e534782841 100644 --- a/spec/services/packages/rpm/repository_metadata/build_primary_xml_service_spec.rb +++ b/spec/services/packages/rpm/repository_metadata/build_primary_xml_service_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -RSpec.describe Packages::Rpm::RepositoryMetadata::BuildPrimaryXmlService do +RSpec.describe Packages::Rpm::RepositoryMetadata::BuildPrimaryXmlService, feature_category: :package_registry do describe '#execute' do subject { described_class.new(data).execute } diff --git a/spec/services/packages/rpm/repository_metadata/build_repomd_xml_service_spec.rb b/spec/services/packages/rpm/repository_metadata/build_repomd_xml_service_spec.rb index cf28301fa2c..99fcf0fabbf 100644 --- a/spec/services/packages/rpm/repository_metadata/build_repomd_xml_service_spec.rb +++ b/spec/services/packages/rpm/repository_metadata/build_repomd_xml_service_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -RSpec.describe Packages::Rpm::RepositoryMetadata::BuildRepomdXmlService do +RSpec.describe Packages::Rpm::RepositoryMetadata::BuildRepomdXmlService, feature_category: :package_registry do describe '#execute' do subject { described_class.new(data).execute } diff --git a/spec/services/packages/rpm/repository_metadata/update_xml_service_spec.rb b/spec/services/packages/rpm/repository_metadata/update_xml_service_spec.rb index e351392ba1c..68a3ac7d82f 100644 --- a/spec/services/packages/rpm/repository_metadata/update_xml_service_spec.rb +++ b/spec/services/packages/rpm/repository_metadata/update_xml_service_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -RSpec.describe Packages::Rpm::RepositoryMetadata::UpdateXmlService do +RSpec.describe Packages::Rpm::RepositoryMetadata::UpdateXmlService, feature_category: :package_registry do describe '#execute' do subject { described_class.new(filename: filename, xml: xml, data: data).execute } diff --git a/spec/services/packages/rubygems/create_dependencies_service_spec.rb b/spec/services/packages/rubygems/create_dependencies_service_spec.rb index b6e12b1cc61..d689bae96ff 100644 --- a/spec/services/packages/rubygems/create_dependencies_service_spec.rb +++ b/spec/services/packages/rubygems/create_dependencies_service_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -RSpec.describe Packages::Rubygems::CreateDependenciesService do +RSpec.describe Packages::Rubygems::CreateDependenciesService, feature_category: :package_registry do include RubygemsHelpers let_it_be(:package) { create(:rubygems_package) } diff --git a/spec/services/packages/rubygems/create_gemspec_service_spec.rb b/spec/services/packages/rubygems/create_gemspec_service_spec.rb index 839fb4d955a..17890100b93 100644 --- a/spec/services/packages/rubygems/create_gemspec_service_spec.rb +++ b/spec/services/packages/rubygems/create_gemspec_service_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -RSpec.describe Packages::Rubygems::CreateGemspecService do +RSpec.describe Packages::Rubygems::CreateGemspecService, feature_category: :package_registry do include RubygemsHelpers let_it_be(:package_file) { create(:package_file, :gem) } diff --git a/spec/services/packages/rubygems/dependency_resolver_service_spec.rb b/spec/services/packages/rubygems/dependency_resolver_service_spec.rb index bb84e0cd361..9a72c51e99c 100644 --- a/spec/services/packages/rubygems/dependency_resolver_service_spec.rb +++ b/spec/services/packages/rubygems/dependency_resolver_service_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -RSpec.describe Packages::Rubygems::DependencyResolverService do +RSpec.describe Packages::Rubygems::DependencyResolverService, feature_category: :package_registry do let_it_be(:project) { create(:project, :private) } let_it_be(:package) { create(:package, project: project) } let_it_be(:user) { create(:user) } diff --git a/spec/services/packages/rubygems/metadata_extraction_service_spec.rb b/spec/services/packages/rubygems/metadata_extraction_service_spec.rb index bbd5b6f3d59..87d63eff311 100644 --- a/spec/services/packages/rubygems/metadata_extraction_service_spec.rb +++ b/spec/services/packages/rubygems/metadata_extraction_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' require 'rubygems/package' -RSpec.describe Packages::Rubygems::MetadataExtractionService do +RSpec.describe Packages::Rubygems::MetadataExtractionService, feature_category: :package_registry do include RubygemsHelpers let_it_be(:package) { create(:rubygems_package) } diff --git a/spec/services/packages/rubygems/process_gem_service_spec.rb b/spec/services/packages/rubygems/process_gem_service_spec.rb index caff338ef53..a1b4eae9655 100644 --- a/spec/services/packages/rubygems/process_gem_service_spec.rb +++ b/spec/services/packages/rubygems/process_gem_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Packages::Rubygems::ProcessGemService do +RSpec.describe Packages::Rubygems::ProcessGemService, feature_category: :package_registry do include ExclusiveLeaseHelpers include RubygemsHelpers diff --git a/spec/services/packages/terraform_module/create_package_service_spec.rb b/spec/services/packages/terraform_module/create_package_service_spec.rb index f73b5682835..3355dfcf5ec 100644 --- a/spec/services/packages/terraform_module/create_package_service_spec.rb +++ b/spec/services/packages/terraform_module/create_package_service_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -RSpec.describe Packages::TerraformModule::CreatePackageService do +RSpec.describe Packages::TerraformModule::CreatePackageService, feature_category: :package_registry do let_it_be(:namespace) { create(:namespace) } let_it_be(:project) { create(:project, namespace: namespace) } let_it_be(:user) { create(:user) } diff --git a/spec/services/packages/update_package_file_service_spec.rb b/spec/services/packages/update_package_file_service_spec.rb index d988049c43a..5d081059105 100644 --- a/spec/services/packages/update_package_file_service_spec.rb +++ b/spec/services/packages/update_package_file_service_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -RSpec.describe Packages::UpdatePackageFileService do +RSpec.describe Packages::UpdatePackageFileService, feature_category: :package_registry do let_it_be(:another_package) { create(:package) } let_it_be(:old_file_name) { 'old_file_name.txt' } let_it_be(:new_file_name) { 'new_file_name.txt' } diff --git a/spec/services/packages/update_tags_service_spec.rb b/spec/services/packages/update_tags_service_spec.rb index c4256699c94..d8f572fff32 100644 --- a/spec/services/packages/update_tags_service_spec.rb +++ b/spec/services/packages/update_tags_service_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -RSpec.describe Packages::UpdateTagsService do +RSpec.describe Packages::UpdateTagsService, feature_category: :package_registry do let_it_be(:package, reload: true) { create(:nuget_package) } let(:tags) { %w(test-tag tag1 tag2 tag3) } diff --git a/spec/services/pages/delete_service_spec.rb b/spec/services/pages/delete_service_spec.rb index 8b9e72ac9b1..590378af22b 100644 --- a/spec/services/pages/delete_service_spec.rb +++ b/spec/services/pages/delete_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Pages::DeleteService do +RSpec.describe Pages::DeleteService, feature_category: :pages do let_it_be(:admin) { create(:admin) } let(:project) { create(:project, path: "my.project") } diff --git a/spec/services/pages/migrate_legacy_storage_to_deployment_service_spec.rb b/spec/services/pages/migrate_legacy_storage_to_deployment_service_spec.rb index 177467aac85..b18f62c1c28 100644 --- a/spec/services/pages/migrate_legacy_storage_to_deployment_service_spec.rb +++ b/spec/services/pages/migrate_legacy_storage_to_deployment_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Pages::MigrateLegacyStorageToDeploymentService do +RSpec.describe Pages::MigrateLegacyStorageToDeploymentService, feature_category: :pages do let(:project) { create(:project, :repository) } let(:service) { described_class.new(project) } diff --git a/spec/services/pages/zip_directory_service_spec.rb b/spec/services/pages/zip_directory_service_spec.rb index 00fe75dbbfd..4917bc65a02 100644 --- a/spec/services/pages/zip_directory_service_spec.rb +++ b/spec/services/pages/zip_directory_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Pages::ZipDirectoryService do +RSpec.describe Pages::ZipDirectoryService, feature_category: :pages do around do |example| Dir.mktmpdir do |dir| @work_dir = dir diff --git a/spec/services/pages_domains/create_acme_order_service_spec.rb b/spec/services/pages_domains/create_acme_order_service_spec.rb index 35b2cc56973..97534d52c67 100644 --- a/spec/services/pages_domains/create_acme_order_service_spec.rb +++ b/spec/services/pages_domains/create_acme_order_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe PagesDomains::CreateAcmeOrderService do +RSpec.describe PagesDomains::CreateAcmeOrderService, feature_category: :pages do include LetsEncryptHelpers let(:pages_domain) { create(:pages_domain) } diff --git a/spec/services/pages_domains/obtain_lets_encrypt_certificate_service_spec.rb b/spec/services/pages_domains/obtain_lets_encrypt_certificate_service_spec.rb index ecb445fa441..2377fbcf003 100644 --- a/spec/services/pages_domains/obtain_lets_encrypt_certificate_service_spec.rb +++ b/spec/services/pages_domains/obtain_lets_encrypt_certificate_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe PagesDomains::ObtainLetsEncryptCertificateService do +RSpec.describe PagesDomains::ObtainLetsEncryptCertificateService, feature_category: :pages do include LetsEncryptHelpers let(:pages_domain) { create(:pages_domain, :without_certificate, :without_key) } diff --git a/spec/services/personal_access_tokens/last_used_service_spec.rb b/spec/services/personal_access_tokens/last_used_service_spec.rb index 6fc74e27dd9..20eabc20338 100644 --- a/spec/services/personal_access_tokens/last_used_service_spec.rb +++ b/spec/services/personal_access_tokens/last_used_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe PersonalAccessTokens::LastUsedService do +RSpec.describe PersonalAccessTokens::LastUsedService, feature_category: :system_access do describe '#execute' do subject { described_class.new(personal_access_token).execute } diff --git a/spec/services/personal_access_tokens/revoke_service_spec.rb b/spec/services/personal_access_tokens/revoke_service_spec.rb index a9b4df9749f..4c5d106660a 100644 --- a/spec/services/personal_access_tokens/revoke_service_spec.rb +++ b/spec/services/personal_access_tokens/revoke_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe PersonalAccessTokens::RevokeService do +RSpec.describe PersonalAccessTokens::RevokeService, feature_category: :system_access do shared_examples_for 'a successfully revoked token' do it { expect(subject.success?).to be true } it { expect(service.token.revoked?).to be true } diff --git a/spec/services/product_analytics/build_activity_graph_service_spec.rb b/spec/services/product_analytics/build_activity_graph_service_spec.rb index e303656da34..cd1bc42e156 100644 --- a/spec/services/product_analytics/build_activity_graph_service_spec.rb +++ b/spec/services/product_analytics/build_activity_graph_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe ProductAnalytics::BuildActivityGraphService do +RSpec.describe ProductAnalytics::BuildActivityGraphService, feature_category: :product_analytics do let_it_be(:project) { create(:project) } let_it_be(:time_now) { Time.zone.now } let_it_be(:time_ago) { Time.zone.now - 5.days } diff --git a/spec/services/product_analytics/build_graph_service_spec.rb b/spec/services/product_analytics/build_graph_service_spec.rb index 933a2bfee92..ee0e2190501 100644 --- a/spec/services/product_analytics/build_graph_service_spec.rb +++ b/spec/services/product_analytics/build_graph_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe ProductAnalytics::BuildGraphService do +RSpec.describe ProductAnalytics::BuildGraphService, feature_category: :product_analytics do let_it_be(:project) { create(:project) } let_it_be(:events) do |