Skip to content
Snippets Groups Projects
Verified Commit ae9679c3 authored by Doug Stull's avatar Doug Stull :two:
Browse files

Remove update_organization_users feature flag

- rollout was successful on production, we can commit to the code now and remove
  the feature flag

Changelog: other
parent 5a35f8be
No related branches found
No related tags found
1 merge request!144997Remove update_organization_users feature flag
......@@ -676,7 +676,6 @@ def event_service
end
def create_organization_user_record
return if Feature.disabled?(:update_organization_users, source.root_ancestor, type: :gitlab_com_derisk)
return if invite?
return if source.organization.blank?
......
---
name: update_organization_users
feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/419366
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139188
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/435868
milestone: '16.8'
group: group::tenant scale
type: gitlab_com_derisk
default_enabled: false
......@@ -1088,13 +1088,11 @@
let_it_be(:group) { create(:group, :with_organization) }
let_it_be(:user) { create(:user) }
let(:member) { create(:group_member, source: group, user: user) }
let(:update_organization_users_enabled) { true }
subject(:commit_member) { member }
before do
allow(Organizations::OrganizationUser).to receive(:create_organization_record_for).once.and_call_original
stub_feature_flags(update_organization_users: update_organization_users_enabled)
end
shared_examples_for 'does not create an organization_user entry' do
......@@ -1104,75 +1102,67 @@
end
context 'when creating' do
context 'when update_organization_users is enabled' do
it 'inserts new record on member creation' do
expect { member }.to change { Organizations::OrganizationUser.count }.by(1)
record_attrs = { organization: group.organization, user: member.user, access_level: :default }
expect(Organizations::OrganizationUser.exists?(record_attrs)).to be(true)
end
context 'when user already exists in the organization_users' do
let_it_be(:user) { create(:user) }
let_it_be(:common_attrs) { { organization: group.organization, user: user } }
let(:new_member) { create(:group_member, :owner, source: group, user: user) }
context 'for an already existing default organization_user' do
before_all do
create(:organization_user, common_attrs)
end
it 'inserts new record on member creation' do
expect { member }.to change { Organizations::OrganizationUser.count }.by(1)
record_attrs = { organization: group.organization, user: member.user, access_level: :default }
expect(Organizations::OrganizationUser.exists?(record_attrs)).to be(true)
end
it 'does not insert a new record in organization_users' do
expect { new_member }.not_to change { Organizations::OrganizationUser.count }
expect(
Organizations::OrganizationUser.exists?(
organization: group.organization, user: user, access_level: :default
)
).to be(true)
end
context 'when user already exists in the organization_users' do
let_it_be(:user) { create(:user) }
let_it_be(:common_attrs) { { organization: group.organization, user: user } }
let(:new_member) { create(:group_member, :owner, source: group, user: user) }
it 'does not update timestamps' do
travel_to(1.day.from_now) do
expect { new_member }.not_to change { Organizations::OrganizationUser.last.updated_at }
end
end
context 'for an already existing default organization_user' do
before_all do
create(:organization_user, common_attrs)
end
context 'for an already existing owner organization_user' do
before_all do
create(:organization_user, :owner, common_attrs)
end
it 'does not insert a new record in organization_users' do
expect { new_member }.not_to change { Organizations::OrganizationUser.count }
expect(
Organizations::OrganizationUser.exists?(
organization: group.organization, user: user, access_level: :default
)
).to be(true)
end
it 'does not insert a new record in organization_users nor update the access_level' do
expect do
create(:group_member, :owner, source: group, user: user)
end.not_to change { Organizations::OrganizationUser.count }
expect(
Organizations::OrganizationUser.exists?(common_attrs.merge(access_level: :default))
).to be(false)
expect(
Organizations::OrganizationUser.exists?(common_attrs.merge(access_level: :owner))
).to be(true)
it 'does not update timestamps' do
travel_to(1.day.from_now) do
expect { new_member }.not_to change { Organizations::OrganizationUser.last.updated_at }
end
end
end
context 'when updating the organization_users is not successful' do
it 'rolls back the member creation' do
allow(Organizations::OrganizationUser)
.to receive(:create_organization_record_for).once.and_raise(ActiveRecord::StatementTimeout)
context 'for an already existing owner organization_user' do
before_all do
create(:organization_user, :owner, common_attrs)
end
expect { commit_member }.to raise_error(ActiveRecord::StatementTimeout)
expect(Organizations::OrganizationUser.exists?(organization: group.organization)).to be(false)
expect(group.group_members).to be_empty
it 'does not insert a new record in organization_users nor update the access_level' do
expect do
create(:group_member, :owner, source: group, user: user)
end.not_to change { Organizations::OrganizationUser.count }
expect(
Organizations::OrganizationUser.exists?(common_attrs.merge(access_level: :default))
).to be(false)
expect(
Organizations::OrganizationUser.exists?(common_attrs.merge(access_level: :owner))
).to be(true)
end
end
end
context 'when update_organization_users is disabled' do
let(:update_organization_users_enabled) { false }
context 'when updating the organization_users is not successful' do
it 'rolls back the member creation' do
allow(Organizations::OrganizationUser)
.to receive(:create_organization_record_for).once.and_raise(ActiveRecord::StatementTimeout)
it_behaves_like 'does not create an organization_user entry'
expect { commit_member }.to raise_error(ActiveRecord::StatementTimeout)
expect(Organizations::OrganizationUser.exists?(organization: group.organization)).to be(false)
expect(group.group_members).to be_empty
end
end
context 'when member is an invite' do
......@@ -1197,30 +1187,22 @@
subject(:commit_member) { member.accept_invite!(user) }
context 'when update_organization_users is enabled' do
it 'inserts new record on member creation' do
expect { commit_member }.to change { Organizations::OrganizationUser.count }.by(1)
expect(group.organization.user?(user)).to be(true)
end
context 'when updating the organization_users is not successful' do
before do
allow(Organizations::OrganizationUser)
.to receive(:create_organization_record_for).once.and_raise(ActiveRecord::StatementTimeout)
end
it 'rolls back the member creation' do
expect { commit_member }.to raise_error(ActiveRecord::StatementTimeout)
expect(group.organization.user?(user)).to be(false)
expect(member.reset.user).to be_nil
end
end
it 'inserts new record on member creation' do
expect { commit_member }.to change { Organizations::OrganizationUser.count }.by(1)
expect(group.organization.user?(user)).to be(true)
end
context 'when update_organization_users is disabled' do
let(:update_organization_users_enabled) { false }
context 'when updating the organization_users is not successful' do
before do
allow(Organizations::OrganizationUser)
.to receive(:create_organization_record_for).once.and_raise(ActiveRecord::StatementTimeout)
end
it_behaves_like 'does not create an organization_user entry'
it 'rolls back the member creation' do
expect { commit_member }.to raise_error(ActiveRecord::StatementTimeout)
expect(group.organization.user?(user)).to be(false)
expect(member.reset.user).to be_nil
end
end
context 'when organization does not exist' do
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment