From 3f16c59c71eb4a5187fa75faa6854349d12eaf62 Mon Sep 17 00:00:00 2001 From: charlie ablett <cablett@gitlab.com> Date: Mon, 24 Jan 2022 17:07:32 +1300 Subject: [PATCH] Replace owner with first_owner in mailer/model specs --- spec/mailers/notify_spec.rb | 2 +- spec/models/ability_spec.rb | 2 +- spec/models/ci/build_trace_chunk_spec.rb | 2 +- spec/models/ci/pipeline_spec.rb | 4 ++-- spec/models/ci/trigger_spec.rb | 2 +- spec/models/commit_spec.rb | 2 +- spec/models/environment_status_spec.rb | 2 +- spec/models/event_spec.rb | 20 ++++++++++---------- spec/models/group_spec.rb | 2 +- spec/models/issue_collection_spec.rb | 4 +++- spec/models/issue_spec.rb | 2 ++ spec/models/note_spec.rb | 2 +- spec/models/project_spec.rb | 4 +++- spec/models/project_team_spec.rb | 8 +++++--- 14 files changed, 33 insertions(+), 25 deletions(-) diff --git a/spec/mailers/notify_spec.rb b/spec/mailers/notify_spec.rb index 0fbdc09a20665..978118ed1b17a 100644 --- a/spec/mailers/notify_spec.rb +++ b/spec/mailers/notify_spec.rb @@ -714,7 +714,7 @@ def id describe 'project access requested' do let(:project) do create(:project, :public) do |project| - project.add_maintainer(project.owner) + project.add_maintainer(project.first_owner) end end diff --git a/spec/models/ability_spec.rb b/spec/models/ability_spec.rb index bb8d476f257e5..5bd69ad9fad15 100644 --- a/spec/models/ability_spec.rb +++ b/spec/models/ability_spec.rb @@ -394,7 +394,7 @@ def users_for_snippet(snippet) describe '.project_disabled_features_rules' do let(:project) { create(:project, :wiki_disabled) } - subject { described_class.policy_for(project.owner, project) } + subject { described_class.policy_for(project.first_owner, project) } context 'wiki named abilities' do it 'disables wiki abilities if the project has no wiki' do diff --git a/spec/models/ci/build_trace_chunk_spec.rb b/spec/models/ci/build_trace_chunk_spec.rb index 31c7c7a44bc73..e08fe196d6543 100644 --- a/spec/models/ci/build_trace_chunk_spec.rb +++ b/spec/models/ci/build_trace_chunk_spec.rb @@ -851,7 +851,7 @@ def lock_chunk(&block) context 'when project is destroyed' do let(:subject) do - Projects::DestroyService.new(project, project.owner).execute + Projects::DestroyService.new(project, project.first_owner).execute end it_behaves_like 'deletes all build_trace_chunk and data in redis' diff --git a/spec/models/ci/pipeline_spec.rb b/spec/models/ci/pipeline_spec.rb index 90f56c1e0a4ad..67f632c3adfa6 100644 --- a/spec/models/ci/pipeline_spec.rb +++ b/spec/models/ci/pipeline_spec.rb @@ -3384,7 +3384,7 @@ def create_pipeline(status, ref, sha) create(:ci_pipeline, project: project, sha: project.commit('master').sha, - user: project.owner) + user: project.first_owner) end before do @@ -4459,7 +4459,7 @@ def create_pipeline(status, ref, sha) describe '#reset_source_bridge!' do let(:pipeline) { create(:ci_pipeline, :created, project: project) } - subject(:reset_bridge) { pipeline.reset_source_bridge!(project.owner) } + subject(:reset_bridge) { pipeline.reset_source_bridge!(project.first_owner) } context 'when the pipeline is a child pipeline and the bridge is depended' do let!(:parent_pipeline) { create(:ci_pipeline) } diff --git a/spec/models/ci/trigger_spec.rb b/spec/models/ci/trigger_spec.rb index b9f7e44f3e84a..3b731e1264b27 100644 --- a/spec/models/ci/trigger_spec.rb +++ b/spec/models/ci/trigger_spec.rb @@ -59,7 +59,7 @@ end it_behaves_like 'includes Limitable concern' do - subject { build(:ci_trigger, owner: project.owner, project: project) } + subject { build(:ci_trigger, owner: project.first_owner, project: project) } end context 'loose foreign key on ci_triggers.owner_id' do diff --git a/spec/models/commit_spec.rb b/spec/models/commit_spec.rb index 2176eea75bc3e..4d3a2fac0fcf3 100644 --- a/spec/models/commit_spec.rb +++ b/spec/models/commit_spec.rb @@ -486,7 +486,7 @@ it 'uses the CachedMarkdownField cache instead of the Mentionable cache', :use_clean_rails_redis_caching do expect(commit.title_html).not_to be_present - commit.all_references(project.owner).all + commit.all_references(project.first_owner).all expect(commit.title_html).to be_present expect(Rails.cache.read("banzai/commit:#{commit.id}/safe_message/single_line")).to be_nil diff --git a/spec/models/environment_status_spec.rb b/spec/models/environment_status_spec.rb index 1b9b38a09324b..1db1171401ccb 100644 --- a/spec/models/environment_status_spec.rb +++ b/spec/models/environment_status_spec.rb @@ -161,7 +161,7 @@ let!(:build) { create(:ci_build, :with_deployment, :deploy_to_production, pipeline: pipeline) } let(:environment) { build.deployment.environment } - let(:user) { project.owner } + let(:user) { project.first_owner } context 'when environment is created on a forked project', :sidekiq_inline do let(:project) { create(:project, :repository) } diff --git a/spec/models/event_spec.rb b/spec/models/event_spec.rb index 9119ef83034c8..f099015e63e82 100644 --- a/spec/models/event_spec.rb +++ b/spec/models/event_spec.rb @@ -25,7 +25,7 @@ expect(instance).to receive(:reset_project_activity) end - create_push_event(project, project.owner) + create_push_event(project, project.first_owner) end end @@ -34,7 +34,7 @@ it 'updates the project last_repository_updated_at and updated_at' do project.touch(:last_repository_updated_at, time: 1.year.ago) # rubocop: disable Rails/SkipsModelValidations - event = create_push_event(project, project.owner) + event = create_push_event(project, project.first_owner) project.reload @@ -47,7 +47,7 @@ it 'does not update the project last_repository_updated_at' do project.update!(last_repository_updated_at: 1.year.ago) - create(:closed_issue_event, project: project, author: project.owner) + create(:closed_issue_event, project: project, author: project.first_owner) project.reload @@ -63,14 +63,14 @@ project.reload # a reload removes fractions of seconds expect do - create_push_event(project, project.owner) + create_push_event(project, project.first_owner) project.reload end.not_to change { project.last_repository_updated_at } end end describe 'after_create UserInteractedProject.track' do - let(:event) { build(:push_event, project: project, author: project.owner) } + let(:event) { build(:push_event, project: project, author: project.first_owner) } it 'passes event to UserInteractedProject.track' do expect(UserInteractedProject).to receive(:track).with(event) @@ -157,7 +157,7 @@ describe "Push event" do let(:project) { create(:project, :private) } - let(:user) { project.owner } + let(:user) { project.first_owner } let(:event) { create_push_event(project, user) } it do @@ -173,7 +173,7 @@ describe '#target_title' do let_it_be(:project) { create(:project) } - let(:author) { project.owner } + let(:author) { project.first_owner } let(:target) { nil } let(:event) do @@ -746,7 +746,7 @@ def visible_to_all_except(*roles) target = kind == :project ? nil : build(kind, **extra_data) - [kind, build(:event, :created, author: project.owner, project: project, target: target)] + [kind, build(:event, :created, author: project.first_owner, project: project, target: target)] end end @@ -830,7 +830,7 @@ def visible_to_all_except(*roles) expect(project).not_to receive(:update_column) .with(:last_activity_at, a_kind_of(Time)) - create_push_event(project, project.owner) + create_push_event(project, project.first_owner) end end @@ -838,7 +838,7 @@ def visible_to_all_except(*roles) it 'updates the project' do project.touch(:last_activity_at, time: 1.year.ago) # rubocop: disable Rails/SkipsModelValidations - event = create_push_event(project, project.owner) + event = create_push_event(project, project.first_owner) project.reload diff --git a/spec/models/group_spec.rb b/spec/models/group_spec.rb index 05ee21662453d..4bc4df02c249e 100644 --- a/spec/models/group_spec.rb +++ b/spec/models/group_spec.rb @@ -1249,7 +1249,7 @@ def setup_group_members(group) let(:common_id) { [Project.maximum(:id).to_i, Namespace.maximum(:id).to_i].max + 999 } let!(:group) { create(:group, id: common_id) } let!(:unrelated_project) { create(:project, id: common_id) } - let(:user) { unrelated_project.owner } + let(:user) { unrelated_project.first_owner } it 'returns correct access level' do expect(shared_group_parent.max_member_access_for_user(user)).to eq(Gitlab::Access::NO_ACCESS) diff --git a/spec/models/issue_collection_spec.rb b/spec/models/issue_collection_spec.rb index d67bd8debceae..183082bab2629 100644 --- a/spec/models/issue_collection_spec.rb +++ b/spec/models/issue_collection_spec.rb @@ -50,7 +50,9 @@ end end - context 'using a user that is the owner of a project' do + # TODO update when we have multiple owners of a project + # https://gitlab.com/gitlab-org/gitlab/-/issues/350605 + context 'using a user that is an owner of a project' do it 'returns the issues of the project' do expect(collection.updatable_by_user(project.namespace.owner)) .to eq([issue1, issue2]) diff --git a/spec/models/issue_spec.rb b/spec/models/issue_spec.rb index c105f6c3439c4..a3f43064f95bb 100644 --- a/spec/models/issue_spec.rb +++ b/spec/models/issue_spec.rb @@ -887,6 +887,8 @@ end end + # TODO update when we have multiple owners of a project + # https://gitlab.com/gitlab-org/gitlab/-/issues/350605 context 'with an owner' do before do project.add_maintainer(user) diff --git a/spec/models/note_spec.rb b/spec/models/note_spec.rb index 9d9cca0678a57..f7d32dc1a7b96 100644 --- a/spec/models/note_spec.rb +++ b/spec/models/note_spec.rb @@ -617,7 +617,7 @@ def retrieve_participants let(:note) do create :note, noteable: ext_issue, project: ext_proj, - note: "mentioned in #{ext_proj.owner.to_reference}", + note: "mentioned in #{ext_proj.first_owner.to_reference}", system: true end diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index 0d1ab22c520b3..d78d0a56f1047 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -871,6 +871,8 @@ end describe 'reference methods' do + # TODO update when we have multiple owners of a project + # https://gitlab.com/gitlab-org/gitlab/-/issues/350605 let_it_be(:owner) { create(:user, name: 'Gitlab') } let_it_be(:namespace) { create(:namespace, name: 'Sample namespace', path: 'sample-namespace', owner: owner) } let_it_be(:project) { create(:project, name: 'Sample project', path: 'sample-project', namespace: namespace) } @@ -2874,7 +2876,7 @@ def has_external_wiki end before do - project.repository.rm_branch(project.owner, branch.name) + project.repository.rm_branch(project.first_owner, branch.name) end subject { project.latest_pipeline(branch.name) } diff --git a/spec/models/project_team_spec.rb b/spec/models/project_team_spec.rb index d5af2d8090634..bfdebbc33df00 100644 --- a/spec/models/project_team_spec.rb +++ b/spec/models/project_team_spec.rb @@ -80,7 +80,7 @@ describe 'owner methods' do context 'personal project' do let(:project) { create(:project) } - let(:owner) { project.owner } + let(:owner) { project.first_owner } specify { expect(project.team.owners).to contain_exactly(owner) } specify { expect(project.team.owner?(owner)).to be_truthy } @@ -108,10 +108,12 @@ let(:project) { create(:project) } it 'returns project members' do + # TODO this can be updated when we have multiple project owners + # See https://gitlab.com/gitlab-org/gitlab/-/issues/350605 user = create(:user) project.add_guest(user) - expect(project.team.members).to contain_exactly(user, project.owner) + expect(project.team.members).to contain_exactly(user, project.first_owner) end it 'returns project members of a specified level' do @@ -129,7 +131,7 @@ group_access: Gitlab::Access::GUEST) expect(project.team.members) - .to contain_exactly(group_member.user, project.owner) + .to contain_exactly(group_member.user, project.first_owner) end it 'returns invited members of a group of a specified level' do -- GitLab