123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- # Copyright (C) 2012-2024 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
|