1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- # Copyright (C) 2012-2024 Zammad Foundation, https://zammad-foundation.org/
- require 'rails_helper'
- RSpec.describe 'Profile > PreferencesPermissionCheck', type: :system do
- let(:admin) { create(:admin) }
- let(:agent) { create(:agent) }
- let(:customer) { create(:customer) }
- before { visit 'profile' }
- shared_examples 'having profile page link to' do |link_name|
- it "shows the #{link_name} link" do
- within '.content .NavBarProfile' do
- expect(page).to have_link(link_name)
- end
- end
- end
- shared_examples 'not having profile page link to' do |link_name|
- it "does not show the #{link_name} link" do
- within '.content .NavBarProfile' do
- expect(page).to have_no_link(link_name)
- end
- end
- end
- context 'when logged in as admin', authenticated_as: :admin do
- it_behaves_like 'having profile page link to', 'Password'
- it_behaves_like 'having profile page link to', 'Language'
- it_behaves_like 'having profile page link to', 'Linked Accounts'
- it_behaves_like 'having profile page link to', 'Avatar'
- it_behaves_like 'having profile page link to', 'Notifications'
- it_behaves_like 'having profile page link to', 'Out of Office'
- it_behaves_like 'having profile page link to', 'Calendar'
- it_behaves_like 'having profile page link to', 'Devices'
- it_behaves_like 'having profile page link to', 'Token Access'
- end
- context 'when logged in as agent', authenticated_as: :agent do
- it_behaves_like 'having profile page link to', 'Password'
- it_behaves_like 'having profile page link to', 'Language'
- it_behaves_like 'having profile page link to', 'Linked Accounts'
- it_behaves_like 'having profile page link to', 'Avatar'
- it_behaves_like 'having profile page link to', 'Notifications'
- it_behaves_like 'having profile page link to', 'Out of Office'
- it_behaves_like 'having profile page link to', 'Calendar'
- it_behaves_like 'having profile page link to', 'Devices'
- it_behaves_like 'having profile page link to', 'Token Access'
- end
- context 'when logged in as customer', authenticated_as: :customer do
- it_behaves_like 'having profile page link to', 'Password'
- it_behaves_like 'having profile page link to', 'Language'
- it_behaves_like 'having profile page link to', 'Linked Accounts'
- it_behaves_like 'having profile page link to', 'Avatar'
- it_behaves_like 'not having profile page link to', 'Notifications'
- it_behaves_like 'not having profile page link to', 'Calendar'
- it_behaves_like 'not having profile page link to', 'Token Access'
- end
- end
|