|
@@ -2235,4 +2235,36 @@ RSpec.describe 'Ticket zoom', type: :system do
|
|
expect(page).to have_selector('form.article-add.is-open')
|
|
expect(page).to have_selector('form.article-add.is-open')
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
+
|
|
|
|
+ context 'Owner should get cleared if not listed in changed group #3818', authenticated_as: :authenticate do
|
|
|
|
+ let(:group1) { create(:group) }
|
|
|
|
+ let(:group2) { create(:group) }
|
|
|
|
+ let(:agent1) { create(:agent) }
|
|
|
|
+ let(:agent2) { create(:agent) }
|
|
|
|
+ let(:ticket) { create(:ticket, group: group1, owner: agent1) }
|
|
|
|
+
|
|
|
|
+ def authenticate
|
|
|
|
+ agent1.group_names_access_map = {
|
|
|
|
+ group1.name => 'full',
|
|
|
|
+ group2.name => %w[read change overview]
|
|
|
|
+ }
|
|
|
|
+ agent2.group_names_access_map = {
|
|
|
|
+ group1.name => 'full',
|
|
|
|
+ group2.name => 'full',
|
|
|
|
+ }
|
|
|
|
+ agent1
|
|
|
|
+ end
|
|
|
|
+
|
|
|
|
+ before do
|
|
|
|
+ visit "#ticket/zoom/#{ticket.id}"
|
|
|
|
+ end
|
|
|
|
+
|
|
|
|
+ it 'does clear agent1 on select of group 2' do
|
|
|
|
+ select group2.name, from: 'Group'
|
|
|
|
+ wait(5).until { page.find('select[name=owner_id]').value != agent1.id.to_s }
|
|
|
|
+ expect(page.find('select[name=owner_id]').value).to eq('')
|
|
|
|
+ expect(page.all('select[name=owner_id] option').map(&:value)).not_to include(agent1.id.to_s)
|
|
|
|
+ expect(page.all('select[name=owner_id] option').map(&:value)).to include(agent2.id.to_s)
|
|
|
|
+ end
|
|
|
|
+ end
|
|
end
|
|
end
|