mirror of
https://github.com/zammad/zammad
synced 2026-05-24 09:48:36 +00:00
84 lines
2.3 KiB
Ruby
84 lines
2.3 KiB
Ruby
# Copyright (C) 2012-2026 Zammad Foundation, https://zammad-foundation.org/
|
|
|
|
require 'rails_helper'
|
|
|
|
RSpec.describe 'Getting Started > Agents', type: :system do
|
|
let(:group) { Group.first }
|
|
let(:group2) { Group.second }
|
|
|
|
before do
|
|
visit 'getting_started/agents', skip_waiting: true
|
|
end
|
|
|
|
it 'shows email address already used error' do
|
|
fill_in 'firstname', with: 'Test'
|
|
fill_in 'lastname', with: 'Test'
|
|
fill_in 'email', with: 'admin@example.com'
|
|
|
|
click '.btn--success'
|
|
|
|
within '.js-danger' do
|
|
expect(page)
|
|
.to have_text("Email address 'admin@example.com' is already used for another user.")
|
|
end
|
|
end
|
|
|
|
it 'toggles groups on (un)checking agent role' do
|
|
expect(page).to have_css('[data-attribute-name="group_ids"]')
|
|
click 'span', text: 'Agent'
|
|
expect(page).to have_no_css('[data-attribute-name="group_ids"]')
|
|
click 'span', text: 'Agent'
|
|
expect(page).to have_css('[data-attribute-name="group_ids"]')
|
|
end
|
|
|
|
context 'when email is filled in' do
|
|
before do
|
|
fill_in 'email', with: 'test@example.com'
|
|
end
|
|
|
|
it 'adds roles correctly' do
|
|
click 'span', text: 'Admin'
|
|
click 'span', text: 'Agent' # unselect preselected role
|
|
|
|
click '.btn--success'
|
|
|
|
expect(User.last).to have_attributes(
|
|
email: 'test@example.com',
|
|
roles: contain_exactly(
|
|
Role.find_by(name: 'Admin')
|
|
)
|
|
)
|
|
end
|
|
|
|
it 'adds group permissions correctly' do
|
|
expect(page).to have_no_css '[data-attribute-name="group_ids"] tbody tr[data-id]'
|
|
|
|
within '.js-groupListNewItemRow' do
|
|
click '.js-input'
|
|
click 'li', text: group.name
|
|
click 'input[value="full"]', visible: :all
|
|
click '.js-add'
|
|
end
|
|
|
|
within '.js-groupListNewItemRow' do
|
|
click '.js-input'
|
|
click 'li', text: group2.name
|
|
click 'input[value="read"]', visible: :all
|
|
click '.js-add'
|
|
end
|
|
|
|
within "[data-attribute-name='group_ids'] tbody tr[data-id='#{group.id}']" do
|
|
click '.js-remove'
|
|
end
|
|
|
|
click '.btn--success'
|
|
|
|
expect(User.last).to have_attributes(
|
|
email: 'test@example.com',
|
|
user_groups: contain_exactly(
|
|
have_attributes(group: group2, access: 'read')
|
|
)
|
|
)
|
|
end
|
|
end
|
|
end
|