diff --git a/ee/spec/controllers/ee/registrations_controller_spec.rb b/ee/spec/controllers/ee/registrations_controller_spec.rb index 270c5da47fb35d3721a8dee2b67fbdeb38e375fa..081a3dda174863cb3dc4c10d42b0eed02d68c242 100644 --- a/ee/spec/controllers/ee/registrations_controller_spec.rb +++ b/ee/spec/controllers/ee/registrations_controller_spec.rb @@ -111,8 +111,8 @@ end context 'when user registers for the instance' do - it 'logs an audit event' do - expect { subject }.to change { AuditEvent.count }.by(1) + it 'logs add email event and instance access request event' do + expect { subject }.to change { AuditEvent.count }.by(2) end it 'logs the audit event info', :aggregate_failures do diff --git a/ee/spec/fixtures/api/schemas/related_issue.json b/ee/spec/fixtures/api/schemas/related_issue.json index 243b66c8cc6806eaaa21c6ee6621c7d8a6d8ff50..3ab6f6769c34c9fac6d7686a7e2e852124cde2a8 100644 --- a/ee/spec/fixtures/api/schemas/related_issue.json +++ b/ee/spec/fixtures/api/schemas/related_issue.json @@ -12,7 +12,8 @@ "reference", "path", "relation_path", - "weight" + "weight", + "blocked" ], "properties": { "id": { "type": "integer" }, @@ -23,6 +24,7 @@ "due_date": { "type": ["string", "null"] }, "state": { "type": "string" }, "weight": { "type": ["integer", "null"] }, + "blocked": { "type": "boolean" }, "reference": { "type": "string" }, "path": { "type": "string" }, "relation_path": { "type": "string" }, diff --git a/ee/spec/support/shared_examples/controllers/registrations/projects_controller_shared_examples.rb b/ee/spec/support/shared_examples/controllers/registrations/projects_controller_shared_examples.rb index e3703cc834cfcfda20f952a8aabeb6ba45f983a5..b917ce7b37a934f05d7de60407c4a37940e80be3 100644 --- a/ee/spec/support/shared_examples/controllers/registrations/projects_controller_shared_examples.rb +++ b/ee/spec/support/shared_examples/controllers/registrations/projects_controller_shared_examples.rb @@ -71,7 +71,7 @@ let_it_be(:trial_onboarding_flow_params) { { trial_onboarding_flow: true } } it 'creates a new project, a "Learn GitLab - Ultimate trial" project, does not set a cookie' do - expect { subject }.to change { namespace.projects.pluck(:name) }.from([]).to(['New project', s_('Learn GitLab - Ultimate trial')]) + expect { subject }.to change { namespace.projects.pluck(:name).sort }.from([]).to(['New project', s_('Learn GitLab - Ultimate trial')].sort) expect(subject).to have_gitlab_http_status(:redirect) expect(namespace.projects.find_by_name(s_('Learn GitLab - Ultimate trial'))).to be_import_finished end diff --git a/spec/controllers/dashboard/todos_controller_spec.rb b/spec/controllers/dashboard/todos_controller_spec.rb index f0aa351bee04b028971ba62f55a98726362f187f..cf528b414c09e3f4677f577aad04d6c1e3a3513b 100644 --- a/spec/controllers/dashboard/todos_controller_spec.rb +++ b/spec/controllers/dashboard/todos_controller_spec.rb @@ -62,7 +62,7 @@ create(:issue, project: project, assignees: [user]) group_2 = create(:group) group_2.add_owner(user) - project_2 = create(:project) + project_2 = create(:project, namespace: user.namespace) project_2.add_developer(user) merge_request_2 = create(:merge_request, source_project: project_2) create(:todo, project: project, author: author, user: user, target: merge_request_2) diff --git a/spec/controllers/projects/merge_requests/diffs_controller_spec.rb b/spec/controllers/projects/merge_requests/diffs_controller_spec.rb index 3d7636b1f30bcc02c2d680579fd29d56636c5190..5b1c6777523e556e19ddf798c7f29d34f600acbd 100644 --- a/spec/controllers/projects/merge_requests/diffs_controller_spec.rb +++ b/spec/controllers/projects/merge_requests/diffs_controller_spec.rb @@ -86,10 +86,11 @@ let(:project) { create(:project, :repository) } let(:user) { create(:user) } + let(:maintainer) { true } let(:merge_request) { create(:merge_request_with_diffs, target_project: project, source_project: project) } before do - project.add_maintainer(user) + project.add_maintainer(user) if maintainer sign_in(user) end @@ -383,8 +384,9 @@ def diff_for_path(extra_params = {}) end context 'when the user cannot view the merge request' do + let(:maintainer) { false } + before do - project.team.truncate diff_for_path(old_path: existing_path, new_path: existing_path) end diff --git a/spec/controllers/projects/merge_requests_controller_spec.rb b/spec/controllers/projects/merge_requests_controller_spec.rb index 438fc2f210627f5d3d65079a83850b50c3dda604..e2fc867db44e6d7f6deb95b623c48c661935fcf3 100644 --- a/spec/controllers/projects/merge_requests_controller_spec.rb +++ b/spec/controllers/projects/merge_requests_controller_spec.rb @@ -10,7 +10,8 @@ let_it_be_with_reload(:project_public_with_private_builds) { create(:project, :repository, :public, :builds_private) } let(:user) { project.owner } - let(:merge_request) { create(:merge_request_with_diffs, target_project: project, source_project: project) } + let(:merge_request) { create(:merge_request_with_diffs, target_project: project, source_project: merge_request_source_project, allow_maintainer_to_push: false) } + let(:merge_request_source_project) { project } before do sign_in(user) @@ -2073,8 +2074,6 @@ def get_pipeline_status end describe 'POST #rebase' do - let(:viewer) { user } - def post_rebase post :rebase, params: { namespace_id: project.namespace, project_id: project, id: merge_request } end @@ -2085,7 +2084,7 @@ def expect_rebase_worker_for(user) context 'successfully' do it 'enqeues a RebaseWorker' do - expect_rebase_worker_for(viewer) + expect_rebase_worker_for(user) post_rebase @@ -2108,17 +2107,17 @@ def expect_rebase_worker_for(user) context 'with a forked project' do let(:forked_project) { fork_project(project, fork_owner, repository: true) } let(:fork_owner) { create(:user) } + let(:merge_request_source_project) { forked_project } - before do - project.add_developer(fork_owner) + context 'user cannot push to source branch' do + before do + project.add_developer(fork_owner) - merge_request.update!(source_project: forked_project) - forked_project.add_reporter(user) - end + forked_project.add_reporter(user) + end - context 'user cannot push to source branch' do it 'returns 404' do - expect_rebase_worker_for(viewer).never + expect_rebase_worker_for(user).never post_rebase diff --git a/spec/controllers/registrations_controller_spec.rb b/spec/controllers/registrations_controller_spec.rb index a25c597edb261a9ce45758bb58e135e64590ac47..baf500c2b57a4f5cb1c323271833a8ec5888854c 100644 --- a/spec/controllers/registrations_controller_spec.rb +++ b/spec/controllers/registrations_controller_spec.rb @@ -499,13 +499,12 @@ expect(User.last.name).to eq("#{base_user_params[:first_name]} #{base_user_params[:last_name]}") end - it 'sets the username and caller_id in the context' do + it 'sets the caller_id in the context' do expect(controller).to receive(:create).and_wrap_original do |m, *args| m.call(*args) expect(Gitlab::ApplicationContext.current) - .to include('meta.user' => base_user_params[:username], - 'meta.caller_id' => 'RegistrationsController#create') + .to include('meta.caller_id' => 'RegistrationsController#create') end subject diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 6a0d9ea06695c19a8456b7398fe6f0e9edcccd18..47aea2c1c374605f76ca8bdacceee2e9e71cc90e 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -197,6 +197,14 @@ if ENV['CI'] || ENV['RETRIES'] # This includes the first try, i.e. tests will be run 4 times before failing. config.default_retry_count = ENV.fetch('RETRIES', 3).to_i + 1 + + # Do not retry controller tests because rspec-retry cannot properly + # reset the controller which may contain data from last attempt. See + # https://gitlab.com/gitlab-org/gitlab/-/merge_requests/73360 + config.around(:each, type: :controller) do |example| + example.run_with_retry(retry: 1) + end + config.exceptions_to_hard_fail = [DeprecationToolkitEnv::DeprecationBehaviors::SelectiveRaise::RaiseDisallowedDeprecation] end