trabajo-afectivo/test/unit/activity_stream_test.rb

234 lines
7.4 KiB
Ruby
Raw Normal View History

2017-11-23 08:09:44 +00:00
2013-09-28 00:07:11 +00:00
require 'test_helper'
class ActivityStreamTest < ActiveSupport::TestCase
2017-06-14 15:25:45 +00:00
setup do
2017-11-23 08:09:44 +00:00
roles = Role.where(name: %w[Admin Agent])
2017-06-14 15:25:45 +00:00
groups = Group.where(name: 'Users')
@admin_user = User.create_or_update(
login: 'admin',
firstname: 'Bob',
lastname: 'Smith',
email: 'bob+active_stream@example.com',
password: 'some_pass',
active: true,
roles: roles,
2017-06-14 15:25:45 +00:00
groups: groups,
updated_by_id: 1,
created_by_id: 1
)
2017-06-14 15:25:45 +00:00
@current_user = User.lookup(email: 'nicole.braun@zammad.org')
ActivityStream.delete_all
end
2013-09-28 00:07:11 +00:00
test 'ticket+user' do
ticket = Ticket.create!(
group_id: Group.lookup(name: 'Users').id,
2017-06-14 15:25:45 +00:00
customer_id: @current_user.id,
owner_id: User.lookup(login: '-').id,
title: 'Unit Test 1 (äöüß)!',
state_id: Ticket::State.lookup(name: 'new').id,
priority_id: Ticket::Priority.lookup(name: '2 normal').id,
2017-06-14 15:25:45 +00:00
updated_by_id: @current_user.id,
created_by_id: @current_user.id,
)
travel 2.seconds
article = Ticket::Article.create!(
ticket_id: ticket.id,
2017-06-14 15:25:45 +00:00
updated_by_id: @current_user.id,
created_by_id: @current_user.id,
type_id: Ticket::Article::Type.lookup(name: 'phone').id,
sender_id: Ticket::Article::Sender.lookup(name: 'Customer').id,
from: 'Unit Test <unittest@example.com>',
body: 'Unit Test 123',
internal: false,
)
travel 100.seconds
ticket.update!(
title: 'Unit Test 1 (äöüß) - update!',
state_id: Ticket::State.lookup(name: 'open').id,
priority_id: Ticket::Priority.lookup(name: '1 low').id,
)
updated_at = ticket.updated_at
2013-09-28 00:07:11 +00:00
travel 1.second
ticket.update!(
title: 'Unit Test 2 (äöüß) - update!',
priority_id: Ticket::Priority.lookup(name: '2 normal').id,
)
2013-09-28 00:07:11 +00:00
# check activity_stream
2017-06-14 15:25:45 +00:00
stream = @admin_user.activity_stream(4)
assert_equal(stream[0]['group_id'], ticket.group_id)
assert_equal(stream[0]['o_id'], ticket.id)
2017-06-14 15:25:45 +00:00
assert_equal(stream[0]['created_by_id'], @current_user.id)
assert_equal(stream[0]['created_at'].to_s, updated_at.to_s)
assert_equal(stream[0]['object'], 'Ticket')
assert_equal(stream[0]['type'], 'update')
assert_equal(stream[1]['group_id'], ticket.group_id)
assert_equal(stream[1]['o_id'], article.id)
2017-06-14 15:25:45 +00:00
assert_equal(stream[1]['created_by_id'], @current_user.id)
assert_equal(stream[1]['created_at'].to_s, article.created_at.to_s)
assert_equal(stream[1]['object'], 'Ticket::Article')
assert_equal(stream[1]['type'], 'create')
assert_equal(stream[2]['group_id'], ticket.group_id)
assert_equal(stream[2]['o_id'], ticket.id)
2017-06-14 15:25:45 +00:00
assert_equal(stream[2]['created_by_id'], @current_user.id)
assert_equal(stream[2]['created_at'].to_s, ticket.created_at.to_s)
assert_equal(stream[2]['object'], 'Ticket')
assert_equal(stream[2]['type'], 'create')
assert_not(stream[3])
2017-06-14 15:25:45 +00:00
stream = @current_user.activity_stream(4)
2017-11-23 08:09:44 +00:00
assert(stream.blank?)
2018-02-20 04:30:46 +00:00
# delete article and check if entry has gone
article.destroy!
# check activity_stream
stream = @admin_user.activity_stream(4)
assert_equal(stream[0]['group_id'], ticket.group_id)
assert_equal(stream[0]['o_id'], ticket.id)
assert_equal(stream[0]['created_by_id'], @current_user.id)
assert_equal(stream[0]['created_at'].to_s, updated_at.to_s)
assert_equal(stream[0]['object'], 'Ticket')
assert_equal(stream[0]['type'], 'update')
assert_equal(stream[1]['group_id'], ticket.group_id)
assert_equal(stream[1]['o_id'], ticket.id)
assert_equal(stream[1]['created_by_id'], @current_user.id)
assert_equal(stream[1]['created_at'].to_s, ticket.created_at.to_s)
assert_equal(stream[1]['object'], 'Ticket')
assert_equal(stream[1]['type'], 'create')
assert_not(stream[2])
stream = @current_user.activity_stream(4)
assert(stream.blank?)
# cleanup
ticket.destroy!
travel_back
2013-09-28 00:07:11 +00:00
end
test 'organization' do
organization = Organization.create!(
name: 'some name',
2017-06-14 15:25:45 +00:00
updated_by_id: @current_user.id,
created_by_id: @current_user.id,
)
travel 100.seconds
assert_equal(organization.class, Organization)
organization.update!(name: 'some name (äöüß)')
updated_at = organization.updated_at
travel 10.seconds
organization.update!(name: 'some name 2 (äöüß)')
# check activity_stream
2017-06-14 15:25:45 +00:00
stream = @admin_user.activity_stream(3)
assert_not(stream[0]['group_id'])
assert_equal(stream[0]['o_id'], organization.id)
2017-06-14 15:25:45 +00:00
assert_equal(stream[0]['created_by_id'], @current_user.id)
assert_equal(stream[0]['created_at'].to_s, updated_at.to_s)
assert_equal(stream[0]['object'], 'Organization')
assert_equal(stream[0]['type'], 'update')
assert_not(stream[1]['group_id'])
assert_equal(stream[1]['o_id'], organization.id)
2017-06-14 15:25:45 +00:00
assert_equal(stream[1]['created_by_id'], @current_user.id)
assert_equal(stream[1]['created_at'].to_s, organization.created_at.to_s)
assert_equal(stream[1]['object'], 'Organization')
assert_equal(stream[1]['type'], 'create')
assert_not(stream[2])
2017-06-14 15:25:45 +00:00
stream = @current_user.activity_stream(4)
2017-11-23 08:09:44 +00:00
assert(stream.blank?)
# cleanup
organization.destroy!
travel_back
2013-09-28 00:07:11 +00:00
end
2013-10-05 12:56:03 +00:00
test 'user with update check false' do
user = User.create!(
login: 'someemail@example.com',
email: 'someemail@example.com',
firstname: 'Bob Smith II',
2017-06-14 15:25:45 +00:00
updated_by_id: @current_user.id,
created_by_id: @current_user.id,
)
assert_equal(user.class, User)
user.update!(
firstname: 'Bob U',
lastname: 'Smith U',
)
2013-10-05 12:56:03 +00:00
# check activity_stream
2017-06-14 15:25:45 +00:00
stream = @admin_user.activity_stream(3)
assert_not(stream[0]['group_id'])
assert_equal(stream[0]['o_id'], user.id)
2017-06-14 15:25:45 +00:00
assert_equal(stream[0]['created_by_id'], @current_user.id)
assert_equal(stream[0]['created_at'].to_s, user.created_at.to_s)
assert_equal(stream[0]['object'], 'User')
assert_equal(stream[0]['type'], 'create')
assert_not(stream[1])
2017-06-14 15:25:45 +00:00
stream = @current_user.activity_stream(4)
2017-11-23 08:09:44 +00:00
assert(stream.blank?)
# cleanup
user.destroy!
travel_back
2013-10-05 12:56:03 +00:00
end
test 'user with update check true' do
user = User.create!(
login: 'someemail@example.com',
email: 'someemail@example.com',
firstname: 'Bob Smith II',
2017-06-14 15:25:45 +00:00
updated_by_id: @current_user.id,
created_by_id: @current_user.id,
)
travel 100.seconds
assert_equal(user.class, User)
2013-10-05 12:56:03 +00:00
user.update!(
firstname: 'Bob U',
lastname: 'Smith U',
)
updated_at = user.updated_at
2013-10-05 12:56:03 +00:00
travel 10.seconds
user.update!(
firstname: 'Bob',
lastname: 'Smith',
)
# check activity_stream
2017-06-14 15:25:45 +00:00
stream = @admin_user.activity_stream(3)
assert_not(stream[0]['group_id'])
assert_equal(stream[0]['o_id'], user.id)
2017-06-14 15:25:45 +00:00
assert_equal(stream[0]['created_by_id'], @current_user.id)
assert_equal(stream[0]['created_at'].to_s, updated_at.to_s)
assert_equal(stream[0]['object'], 'User')
assert_equal(stream[0]['type'], 'update')
assert_not(stream[1]['group_id'])
assert_equal(stream[1]['o_id'], user.id)
2017-06-14 15:25:45 +00:00
assert_equal(stream[1]['created_by_id'], @current_user.id)
assert_equal(stream[1]['created_at'].to_s, user.created_at.to_s)
assert_equal(stream[1]['object'], 'User')
assert_equal(stream[1]['type'], 'create')
assert_not(stream[2])
2017-06-14 15:25:45 +00:00
stream = @current_user.activity_stream(4)
2017-11-23 08:09:44 +00:00
assert(stream.blank?)
# cleanup
user.destroy!
travel_back
2013-09-28 00:07:11 +00:00
end
end