123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- # Copyright (C) 2012-2024 Zammad Foundation, https://zammad-foundation.org/
- require 'rails_helper'
- RSpec.describe 'Ticket zoom > Autosave', type: :system do
- before do
- visit "ticket/zoom/#{Ticket.first.id}"
- click '.attachmentPlaceholder'
- end
- context 'with content added' do
- before do
- find(:richtext).send_keys('sample text')
- end
- it 'autosaves visibility change for the default type' do
- click '.js-toggleVisibility'
- expect(page).to have_css('.js-reset')
- wait_for_autosave_and_reload
- within '.article-new' do
- expect(page)
- .to have_css('.editControls-icon.icon-public')
- .and have_css('.js-selectableTypes[data-type="note"]')
- end
- end
- it 'autosaves visibility change back to default for the default type' do
- click '.js-toggleVisibility'
- click '.js-toggleVisibility'
- wait_for_autosave_and_reload
- within '.article-new' do
- expect(page)
- .to have_css('.editControls-icon.icon-internal')
- .and have_css('.js-selectableTypes[data-type="note"]')
- end
- end
- it 'autosaves non-default type' do
- click '.js-selectableTypes'
- click '.js-articleTypeItem[data-value=phone]'
- wait_for_autosave_and_reload
- within '.article-new' do
- expect(page)
- .to have_css('.editControls-icon.icon-public')
- .and have_css('.js-selectableTypes[data-type="phone"]')
- end
- end
- it 'autosaves non-default type with non-default visibility' do
- click '.js-selectableTypes'
- click '.js-articleTypeItem[data-value=phone]'
- click '.js-toggleVisibility'
- wait_for_autosave_and_reload
- within '.article-new' do
- expect(page)
- .to have_css('.editControls-icon.icon-internal')
- .and have_css('.js-selectableTypes[data-type="phone"]')
- end
- end
- end
- context 'without content' do
- it 'ignores visibility change' do
- click '.js-toggleVisibility'
- expect(page).to have_no_css('.js-reset')
- end
- it 'ignores type change' do
- click '.js-selectableTypes'
- click '.js-articleTypeItem[data-value=phone]'
- expect(page).to have_no_css('.js-reset')
- end
- end
- def wait_for_autosave_and_reload
- time = Time.current
- wait.until do
- Taskbar.exists?(['updated_at > ?', time])
- end
- refresh
- click '.attachmentPlaceholder'
- end
- end
|