123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- # Copyright (C) 2012-2024 Zammad Foundation, https://zammad-foundation.org/
- require 'browser_test_helper'
- class AdminOverviewTest < TestCase
- def test_account_add
- name = "some overview #{SecureRandom.uuid}"
- @browser = browser_instance
- login(
- username: 'admin@example.com',
- password: 'test',
- url: browser_url,
- )
- tasks_close_all
- # add new overview
- overview_create(
- data: {
- name: name,
- roles: ['Agent'],
- selector: {
- 'Priority' => '1 low',
- },
- 'order::direction' => 'descending',
- }
- )
- # edit overview
- overview_update(
- data: {
- name: name,
- roles: ['Agent'],
- selector: {
- 'State' => 'new',
- },
- 'order::direction' => 'ascending',
- }
- )
- end
- def test_overview_group_by_direction
- name = "overview_#{SecureRandom.uuid}"
- ticket_titles = (1..3).map { |i| "Priority #{i} ticket" }
- @browser = browser_instance
- login(
- username: 'admin@example.com',
- password: 'test',
- url: browser_url,
- )
- tasks_close_all
- ticket_create(
- data: {
- customer: 'nico',
- group: 'Users',
- title: 'Priority 1 ticket',
- body: 'some body 123äöü',
- priority: '1 low',
- },
- )
- ticket_create(
- data: {
- customer: 'nico',
- group: 'Users',
- title: 'Priority 2 ticket',
- body: 'some body 123äöü',
- priority: '2 normal',
- },
- )
- ticket_create(
- data: {
- customer: 'nico',
- group: 'Users',
- title: 'Priority 3 ticket',
- body: 'some body 123äöü',
- priority: '3 high',
- },
- )
- # Add new overview to sort groups from high to low
- overview_create(
- data: {
- name: name,
- roles: ['Agent'],
- selector: {
- 'State' => 'open',
- },
- 'order::direction' => 'descending',
- group_by: 'Priority',
- group_direction: 'descending',
- }
- )
- overview_open(
- name: name
- )
- assert_equal(ticket_titles.reverse, ordered_ticket_titles(ticket_titles))
- # Update overview to sort groups from low to high
- overview_update(
- data: {
- name: name,
- group_direction: 'ascending',
- }
- )
- overview_open(
- name: name
- )
- # wait till the scheduler pushed
- # the changes to the FE
- sleep 5
- assert_equal(ticket_titles, ordered_ticket_titles(ticket_titles))
- end
- def ordered_ticket_titles(ticket_titles)
- ticket_titles.map do |title|
- [title,
- get_location(css: "td[title='#{title}']").y]
- end.sort_by { |x| x[1] }.pluck(0)
- end
- # verify fix for issue #2235 - Overview setting isn't applied on submit
- def test_overview_toggle_out_of_office_setting
- @browser = browser_instance
- login(
- username: 'admin@example.com',
- password: 'test',
- url: browser_url,
- )
- tasks_close_all
- out_of_office_css = '.content.active .modal select[name="out_of_office"]'
- first_overview_css = '.content.active tr[data-id="1"] td'
- click(css: 'a[href="#manage"]')
- click(css: '.content.active a[href="#manage/overviews"]')
- # round 1, open the overview and set out_of_office to true
- click(css: first_overview_css)
- modal_ready
- watch_for(
- css: out_of_office_css,
- value: 'no',
- )
- select(
- css: out_of_office_css,
- value: 'yes',
- )
- click(css: '.content.active .modal .js-submit')
- modal_disappear
- # round 2, open the overview and set out_of_office back to false
- click(css: first_overview_css)
- modal_ready
- watch_for(
- css: out_of_office_css,
- value: 'yes',
- )
- select(
- css: out_of_office_css,
- value: 'no',
- )
- click(css: '.content.active .modal .js-submit')
- modal_disappear
- # round 3, open the overview and confirm that it's still false
- click(css: first_overview_css)
- modal_ready
- watch_for(
- css: out_of_office_css,
- value: 'no',
- )
- click(css: '.content.active .modal .js-submit')
- modal_disappear
- end
- end
|