2016-03-14 15:05:52 +00:00
|
|
|
# encoding: utf-8
|
|
|
|
require 'test_helper'
|
|
|
|
|
|
|
|
class TicketOverviewTest < ActiveSupport::TestCase
|
2016-06-20 08:55:45 +00:00
|
|
|
agent1 = nil
|
|
|
|
agent2 = nil
|
|
|
|
organization_id = nil
|
|
|
|
customer1 = nil
|
|
|
|
customer2 = nil
|
|
|
|
customer3 = nil
|
|
|
|
test 'aaa - setup' do
|
2016-03-14 15:05:52 +00:00
|
|
|
|
2016-06-20 08:55:45 +00:00
|
|
|
# create base
|
|
|
|
group = Group.create_or_update(
|
|
|
|
name: 'OverviewTest',
|
|
|
|
updated_at: '2015-02-05 16:37:00',
|
|
|
|
updated_by_id: 1,
|
|
|
|
created_by_id: 1,
|
|
|
|
)
|
|
|
|
roles = Role.where(name: 'Agent')
|
|
|
|
agent1 = User.create_or_update(
|
|
|
|
login: 'ticket-overview-agent1@example.com',
|
|
|
|
firstname: 'Overview',
|
|
|
|
lastname: 'Agent1',
|
|
|
|
email: 'ticket-overview-agent1@example.com',
|
|
|
|
password: 'agentpw',
|
|
|
|
active: true,
|
|
|
|
roles: roles,
|
|
|
|
groups: [group],
|
|
|
|
updated_at: '2015-02-05 16:37:00',
|
|
|
|
updated_by_id: 1,
|
|
|
|
created_by_id: 1,
|
|
|
|
)
|
|
|
|
agent2 = User.create_or_update(
|
|
|
|
login: 'ticket-overview-agent2@example.com',
|
|
|
|
firstname: 'Overview',
|
|
|
|
lastname: 'Agent2',
|
|
|
|
email: 'ticket-overview-agent2@example.com',
|
|
|
|
password: 'agentpw',
|
|
|
|
active: true,
|
|
|
|
roles: roles,
|
|
|
|
#groups: groups,
|
|
|
|
updated_at: '2015-02-05 16:38:00',
|
|
|
|
updated_by_id: 1,
|
|
|
|
created_by_id: 1,
|
|
|
|
)
|
|
|
|
roles = Role.where(name: 'Customer')
|
|
|
|
organization1 = Organization.create_or_update(
|
|
|
|
name: 'Overview Org',
|
|
|
|
updated_at: '2015-02-05 16:37:00',
|
|
|
|
updated_by_id: 1,
|
|
|
|
created_by_id: 1,
|
|
|
|
)
|
|
|
|
customer1 = User.create_or_update(
|
|
|
|
login: 'ticket-overview-customer1@example.com',
|
|
|
|
firstname: 'Overview',
|
|
|
|
lastname: 'Customer1',
|
|
|
|
email: 'ticket-overview-customer1@example.com',
|
|
|
|
password: 'customerpw',
|
|
|
|
active: true,
|
|
|
|
organization_id: organization1.id,
|
|
|
|
roles: roles,
|
|
|
|
updated_at: '2015-02-05 16:37:00',
|
|
|
|
updated_by_id: 1,
|
|
|
|
created_by_id: 1,
|
|
|
|
)
|
|
|
|
customer2 = User.create_or_update(
|
|
|
|
login: 'ticket-overview-customer2@example.com',
|
|
|
|
firstname: 'Overview',
|
|
|
|
lastname: 'Customer2',
|
|
|
|
email: 'ticket-overview-customer2@example.com',
|
|
|
|
password: 'customerpw',
|
|
|
|
active: true,
|
|
|
|
organization_id: organization1.id,
|
|
|
|
roles: roles,
|
|
|
|
updated_at: '2015-02-05 16:37:00',
|
|
|
|
updated_by_id: 1,
|
|
|
|
created_by_id: 1,
|
|
|
|
)
|
|
|
|
customer3 = User.create_or_update(
|
|
|
|
login: 'ticket-overview-customer3@example.com',
|
|
|
|
firstname: 'Overview',
|
|
|
|
lastname: 'Customer3',
|
|
|
|
email: 'ticket-overview-customer3@example.com',
|
|
|
|
password: 'customerpw',
|
|
|
|
active: true,
|
|
|
|
organization_id: nil,
|
|
|
|
roles: roles,
|
|
|
|
updated_at: '2015-02-05 16:37:00',
|
|
|
|
updated_by_id: 1,
|
|
|
|
created_by_id: 1,
|
|
|
|
)
|
|
|
|
Overview.destroy_all
|
|
|
|
UserInfo.current_user_id = 1
|
|
|
|
overview_role = Role.find_by(name: 'Agent')
|
|
|
|
Overview.create_or_update(
|
|
|
|
name: 'My assigned Tickets',
|
|
|
|
link: 'my_assigned',
|
|
|
|
prio: 1000,
|
|
|
|
role_id: overview_role.id,
|
|
|
|
condition: {
|
|
|
|
'ticket.state_id' => {
|
|
|
|
operator: 'is',
|
|
|
|
value: [ 1, 2, 3, 7 ],
|
|
|
|
},
|
|
|
|
'ticket.owner_id' => {
|
|
|
|
operator: 'is',
|
|
|
|
pre_condition: 'current_user.id',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
order: {
|
|
|
|
by: 'created_at',
|
|
|
|
direction: 'ASC',
|
2016-03-14 15:05:52 +00:00
|
|
|
},
|
2016-06-20 08:55:45 +00:00
|
|
|
view: {
|
|
|
|
d: %w(title customer group created_at),
|
|
|
|
s: %w(title customer group created_at),
|
|
|
|
m: %w(number title customer group created_at),
|
|
|
|
view_mode_default: 's',
|
2016-03-14 15:05:52 +00:00
|
|
|
},
|
2016-06-20 08:55:45 +00:00
|
|
|
)
|
2016-03-14 15:05:52 +00:00
|
|
|
|
2016-06-20 08:55:45 +00:00
|
|
|
Overview.create_or_update(
|
|
|
|
name: 'Unassigned & Open',
|
|
|
|
link: 'all_unassigned',
|
|
|
|
prio: 1010,
|
|
|
|
role_id: overview_role.id,
|
|
|
|
condition: {
|
|
|
|
'ticket.state_id' => {
|
|
|
|
operator: 'is',
|
|
|
|
value: [1, 2, 3],
|
|
|
|
},
|
|
|
|
'ticket.owner_id' => {
|
|
|
|
operator: 'is',
|
|
|
|
value: 1,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
order: {
|
|
|
|
by: 'created_at',
|
|
|
|
direction: 'ASC',
|
|
|
|
},
|
|
|
|
view: {
|
|
|
|
d: %w(title customer group created_at),
|
|
|
|
s: %w(title customer group created_at),
|
|
|
|
m: %w(number title customer group created_at),
|
|
|
|
view_mode_default: 's',
|
2016-03-14 15:05:52 +00:00
|
|
|
},
|
2016-06-20 08:55:45 +00:00
|
|
|
)
|
|
|
|
Overview.create_or_update(
|
|
|
|
name: 'My Tickets 2',
|
|
|
|
link: 'my_tickets_2',
|
|
|
|
prio: 1020,
|
|
|
|
role_id: overview_role.id,
|
|
|
|
user_ids: [agent2.id],
|
|
|
|
condition: {
|
|
|
|
'ticket.state_id' => {
|
|
|
|
operator: 'is',
|
|
|
|
value: [ 1, 2, 3, 7 ],
|
|
|
|
},
|
|
|
|
'ticket.owner_id' => {
|
|
|
|
operator: 'is',
|
|
|
|
pre_condition: 'current_user.id',
|
|
|
|
},
|
2016-03-14 15:05:52 +00:00
|
|
|
},
|
2016-06-20 08:55:45 +00:00
|
|
|
order: {
|
|
|
|
by: 'created_at',
|
|
|
|
direction: 'ASC',
|
2016-03-14 15:05:52 +00:00
|
|
|
},
|
2016-06-20 08:55:45 +00:00
|
|
|
view: {
|
|
|
|
d: %w(title customer group created_at),
|
|
|
|
s: %w(title customer group created_at),
|
|
|
|
m: %w(number title customer group created_at),
|
|
|
|
view_mode_default: 's',
|
2016-03-14 15:05:52 +00:00
|
|
|
},
|
2016-06-20 08:55:45 +00:00
|
|
|
)
|
2016-03-14 15:05:52 +00:00
|
|
|
|
2016-06-20 08:55:45 +00:00
|
|
|
overview_role = Role.find_by(name: 'Customer')
|
|
|
|
Overview.create_or_update(
|
|
|
|
name: 'My Tickets',
|
|
|
|
link: 'my_tickets',
|
|
|
|
prio: 1100,
|
|
|
|
role_id: overview_role.id,
|
|
|
|
condition: {
|
|
|
|
'ticket.state_id' => {
|
|
|
|
operator: 'is',
|
|
|
|
value: [ 1, 2, 3, 4, 6, 7 ],
|
|
|
|
},
|
|
|
|
'ticket.customer_id' => {
|
|
|
|
operator: 'is',
|
|
|
|
pre_condition: 'current_user.id',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
order: {
|
|
|
|
by: 'created_at',
|
|
|
|
direction: 'DESC',
|
2016-03-14 15:05:52 +00:00
|
|
|
},
|
2016-06-20 08:55:45 +00:00
|
|
|
view: {
|
|
|
|
d: %w(title customer state created_at),
|
|
|
|
s: %w(number title state created_at),
|
|
|
|
m: %w(number title state created_at),
|
|
|
|
view_mode_default: 's',
|
2016-03-14 15:05:52 +00:00
|
|
|
},
|
2016-06-20 08:55:45 +00:00
|
|
|
)
|
|
|
|
Overview.create_or_update(
|
|
|
|
name: 'My Organization Tickets',
|
|
|
|
link: 'my_organization_tickets',
|
|
|
|
prio: 1200,
|
|
|
|
role_id: overview_role.id,
|
|
|
|
organization_shared: true,
|
|
|
|
condition: {
|
|
|
|
'ticket.state_id' => {
|
|
|
|
operator: 'is',
|
|
|
|
value: [ 1, 2, 3, 4, 6, 7 ],
|
|
|
|
},
|
|
|
|
'ticket.organization_id' => {
|
|
|
|
operator: 'is',
|
|
|
|
pre_condition: 'current_user.organization_id',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
order: {
|
|
|
|
by: 'created_at',
|
|
|
|
direction: 'DESC',
|
2016-03-14 15:05:52 +00:00
|
|
|
},
|
2016-06-20 08:55:45 +00:00
|
|
|
view: {
|
|
|
|
d: %w(title customer state created_at),
|
|
|
|
s: %w(number title customer state created_at),
|
|
|
|
m: %w(number title customer state created_at),
|
|
|
|
view_mode_default: 's',
|
2016-03-14 15:05:52 +00:00
|
|
|
},
|
2016-06-20 08:55:45 +00:00
|
|
|
)
|
|
|
|
Overview.create_or_update(
|
|
|
|
name: 'My Organization Tickets (open)',
|
|
|
|
link: 'my_organization_tickets_open',
|
|
|
|
prio: 1200,
|
|
|
|
role_id: overview_role.id,
|
|
|
|
user_ids: [customer2.id],
|
|
|
|
organization_shared: true,
|
|
|
|
condition: {
|
|
|
|
'ticket.state_id' => {
|
|
|
|
operator: 'is',
|
|
|
|
value: [ 1, 2, 3 ],
|
|
|
|
},
|
|
|
|
'ticket.organization_id' => {
|
|
|
|
operator: 'is',
|
|
|
|
pre_condition: 'current_user.organization_id',
|
|
|
|
},
|
2016-03-14 15:05:52 +00:00
|
|
|
},
|
2016-06-20 08:55:45 +00:00
|
|
|
order: {
|
|
|
|
by: 'created_at',
|
|
|
|
direction: 'DESC',
|
2016-03-14 15:05:52 +00:00
|
|
|
},
|
2016-06-20 08:55:45 +00:00
|
|
|
view: {
|
|
|
|
d: %w(title customer state created_at),
|
|
|
|
s: %w(number title customer state created_at),
|
|
|
|
m: %w(number title customer state created_at),
|
|
|
|
view_mode_default: 's',
|
|
|
|
},
|
|
|
|
)
|
2016-03-14 15:05:52 +00:00
|
|
|
|
2016-06-20 08:55:45 +00:00
|
|
|
overview_role = Role.find_by(name: 'Admin')
|
|
|
|
Overview.create_or_update(
|
|
|
|
name: 'Not Shown Admin',
|
|
|
|
link: 'not_shown_admin',
|
|
|
|
prio: 9900,
|
|
|
|
role_id: overview_role.id,
|
|
|
|
condition: {
|
|
|
|
'ticket.state_id' => {
|
|
|
|
operator: 'is',
|
|
|
|
value: [ 1, 2, 3 ],
|
|
|
|
},
|
|
|
|
},
|
|
|
|
order: {
|
|
|
|
by: 'created_at',
|
|
|
|
direction: 'DESC',
|
2016-03-14 15:05:52 +00:00
|
|
|
},
|
2016-06-20 08:55:45 +00:00
|
|
|
view: {
|
|
|
|
d: %w(title customer state created_at),
|
|
|
|
s: %w(number title customer state created_at),
|
|
|
|
m: %w(number title customer state created_at),
|
|
|
|
view_mode_default: 's',
|
|
|
|
},
|
|
|
|
)
|
|
|
|
end
|
2016-03-14 15:05:52 +00:00
|
|
|
|
|
|
|
test 'ticket create' do
|
|
|
|
|
|
|
|
result = Ticket::Overviews.all(
|
|
|
|
current_user: agent1,
|
|
|
|
)
|
|
|
|
assert_equal(2, result.count)
|
|
|
|
assert_equal('My assigned Tickets', result[0].name)
|
|
|
|
assert_equal('Unassigned & Open', result[1].name)
|
|
|
|
|
|
|
|
result = Ticket::Overviews.all(
|
|
|
|
current_user: agent2,
|
|
|
|
)
|
|
|
|
assert_equal(3, result.count)
|
|
|
|
assert_equal('My assigned Tickets', result[0].name)
|
|
|
|
assert_equal('Unassigned & Open', result[1].name)
|
|
|
|
assert_equal('My Tickets 2', result[2].name)
|
|
|
|
|
|
|
|
result = Ticket::Overviews.all(
|
|
|
|
current_user: customer1,
|
|
|
|
)
|
|
|
|
assert_equal(2, result.count)
|
|
|
|
assert_equal('My Tickets', result[0].name)
|
|
|
|
assert_equal('My Organization Tickets', result[1].name)
|
|
|
|
|
|
|
|
result = Ticket::Overviews.all(
|
|
|
|
current_user: customer2,
|
|
|
|
)
|
|
|
|
assert_equal(3, result.count)
|
|
|
|
assert_equal('My Tickets', result[0].name)
|
|
|
|
assert_equal('My Organization Tickets', result[1].name)
|
|
|
|
assert_equal('My Organization Tickets (open)', result[2].name)
|
|
|
|
|
|
|
|
result = Ticket::Overviews.all(
|
|
|
|
current_user: customer3,
|
|
|
|
)
|
|
|
|
assert_equal(1, result.count)
|
|
|
|
assert_equal('My Tickets', result[0].name)
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|