Skip to content
代码片段 群组 项目
提交 a46122d1 编辑于 作者: Manoj M J's avatar Manoj M J
浏览文件

Merge branch '415302-call-refresh-seat-worker' into 'master'

Enqueue assignments refresh worker

See merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/131274



Merged-by: default avatarManoj M J <mmj@gitlab.com>
Approved-by: default avatarJosianne Hyson <jhyson@gitlab.com>
Approved-by: default avatarManoj M J <mmj@gitlab.com>
Reviewed-by: default avatarManoj M J <mmj@gitlab.com>
Reviewed-by: default avatarJosianne Hyson <jhyson@gitlab.com>
Reviewed-by: default avatarBishwa Hang Rai <bhrai@gitlab.com>
Co-authored-by: default avatarBishwa Hang Rai <bhrai@gitlab.com>
No related branches found
No related tags found
无相关合并请求
......@@ -9,17 +9,18 @@ module DestroyService
override :execute
def execute(one_or_more_links, skip_authorization: false)
super.tap do |links|
log_audit_events(links)
next unless links.is_a?(Array)
perform_after_destroy_actions(links)
end
end
private
def log_audit_events(links)
return unless links.is_a?(Array)
def perform_after_destroy_actions(links)
links.each do |link|
log_audit_event(link.shared_group, link.shared_with_group)
enqueue_refresh_add_on_assignments_worker(link)
end
end
......@@ -36,6 +37,13 @@ def log_audit_event(group, shared_with_group)
::Gitlab::Audit::Auditor.audit(audit_context)
end
def enqueue_refresh_add_on_assignments_worker(link)
return unless ::Feature.enabled?(:hamilton_seat_management)
GitlabSubscriptions::AddOnPurchases::RefreshUserAssignmentsWorker
.perform_async(link.shared_group.root_ancestor.id)
end
end
end
end
......
......@@ -9,7 +9,11 @@ module DestroyService
override :execute
def execute(group_link)
super.tap do |link|
send_audit_event(link) if link && !link&.persisted?
if link && !link&.persisted?
send_audit_event(link)
enqueue_refresh_add_on_assignments_woker(link)
end
end
end
......@@ -32,6 +36,13 @@ def send_audit_event(group_link)
::Gitlab::Audit::Auditor.audit(audit_context)
end
def enqueue_refresh_add_on_assignments_woker(link)
return unless ::Feature.enabled?(:hamilton_seat_management)
GitlabSubscriptions::AddOnPurchases::RefreshUserAssignmentsWorker
.perform_async(link.project.root_ancestor.id)
end
end
end
end
......
......@@ -32,6 +32,30 @@
subject.execute(link)
end
context 'for refresh user addon assignments' do
let(:sub_group_shared) { create(:group, :private, parent: shared_group) }
let!(:link) { create(:group_group_link, shared_group: sub_group_shared, shared_with_group: group) }
let(:worker) { GitlabSubscriptions::AddOnPurchases::RefreshUserAssignmentsWorker }
it 'enqueues RefreshUserAssignmentsWorker with correct arguments' do
expect(worker).to receive(:perform_async).with(sub_group_shared.root_ancestor.id).and_call_original
subject.execute(link)
end
context 'when the feature flag is not enabled' do
before do
stub_feature_flags(hamilton_seat_management: false)
end
it 'does not enqueue CleanupUserAddOnAssignmentWorker' do
expect(worker).not_to receive(:perform_async)
subject.execute(link)
end
end
end
end
context 'with multiple links' do
......@@ -54,5 +78,14 @@
subject.execute(links)
end
it 'enqueues multiple CleanupUserAddOnAssignmentWorker' do
expect(GitlabSubscriptions::AddOnPurchases::RefreshUserAssignmentsWorker).to receive(:perform_async)
.exactly(links.size).times do |arg|
expect(arg).to eq(shared_group.id).or eq(another_shared_group.id)
end.and_call_original
subject.execute(links)
end
end
end
......@@ -53,4 +53,26 @@
subject.execute(group_link)
end
end
context 'for refresh user addon assignments' do
let(:worker) { GitlabSubscriptions::AddOnPurchases::RefreshUserAssignmentsWorker }
it 'enqueues RefreshUserAssignmentsWorker with correct arguments' do
expect(worker).to receive(:perform_async).with(project.root_ancestor.id).and_call_original
subject.execute(group_link)
end
context 'when the feature flag is not enabled' do
before do
stub_feature_flags(hamilton_seat_management: false)
end
it 'does not enqueue CleanupUserAddOnAssignmentWorker' do
expect(worker).not_to receive(:perform_async)
subject.execute(group_link)
end
end
end
end
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册