12345678910111213141516171819202122232425262728 |
- # Copyright (C) 2012-2024 Zammad Foundation, https://zammad-foundation.org/
- require 'rails_helper'
- RSpec.describe Sessions::Backend::ActivityStream do
- context 'when async processes affect associated objects / DB records (#2066)' do
- subject(:activity_stream) { described_class.new(user, {}) }
- let(:user) { create(:agent, groups: [group]) }
- let(:group) { Group.find_by(name: 'Users') }
- let(:associated_tickets) { create_list(:ticket, ticket_count, group: group) }
- let(:ticket_count) { 20 }
- before do
- Setting.set('system_init_done', true)
- # these records must be created before the example begins
- # (same as `let!`, but harder to miss)
- associated_tickets
- end
- it 'manages race condition' do
- thread = Thread.new { associated_tickets.each(&:destroy) }
- expect { activity_stream.load }.not_to raise_error
- thread.join
- end
- end
- end
|