trabajo-afectivo/test/unit/activity_stream_test.rb
Martin Gruner 1ab185543f Revert "Applied rubocop suggestions."
This reverts commit 1903a0b3c480369875df416bbf1299cec428bc6a.
2021-07-09 14:38:44 +00:00

235 lines
7.5 KiB
Ruby

# Copyright (C) 2012-2021 Zammad Foundation, http://zammad-foundation.org/
require 'test_helper'
class ActivityStreamTest < ActiveSupport::TestCase
setup do
roles = Role.where(name: %w[Admin Agent])
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,
groups: groups,
updated_by_id: 1,
created_by_id: 1
)
@current_user = User.lookup(email: 'nicole.braun@zammad.org')
ActivityStream.delete_all
end
test 'ticket+user' do
ticket = Ticket.create!(
group_id: Group.lookup(name: 'Users').id,
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,
updated_by_id: @current_user.id,
created_by_id: @current_user.id,
)
travel 2.seconds
article = Ticket::Article.create!(
ticket_id: ticket.id,
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
travel 1.second
ticket.update!(
title: 'Unit Test 2 (äöüß) - update!',
priority_id: Ticket::Priority.lookup(name: '2 normal').id,
)
# 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.name, 'Ticket')
assert_equal(stream[0].type.name, 'update')
assert_equal(stream[1].group_id, ticket.group_id)
assert_equal(stream[1].o_id, article.id)
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.name, 'Ticket::Article')
assert_equal(stream[1].type.name, 'create')
assert_equal(stream[2].group_id, ticket.group_id)
assert_equal(stream[2].o_id, ticket.id)
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.name, 'Ticket')
assert_equal(stream[2].type.name, 'create')
assert_not(stream[3])
stream = @current_user.activity_stream(4)
assert(stream.blank?)
# 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.name, 'Ticket')
assert_equal(stream[0].type.name, '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.name, 'Ticket')
assert_equal(stream[1].type.name, 'create')
assert_not(stream[2])
stream = @current_user.activity_stream(4)
assert(stream.blank?)
# cleanup
ticket.destroy!
travel_back
end
test 'organization' do
organization = Organization.create!(
name: 'some name',
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
stream = @admin_user.activity_stream(3)
assert_not(stream[0].group_id)
assert_equal(stream[0].o_id, organization.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.name, 'Organization')
assert_equal(stream[0].type.name, 'update')
assert_not(stream[1].group_id)
assert_equal(stream[1].o_id, organization.id)
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.name, 'Organization')
assert_equal(stream[1].type.name, 'create')
assert_not(stream[2])
stream = @current_user.activity_stream(4)
assert(stream.blank?)
# cleanup
organization.destroy!
travel_back
end
test 'user with update check false' do
user = User.create!(
login: 'someemail@example.com',
email: 'someemail@example.com',
firstname: 'Bob Smith II',
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',
)
# check activity_stream
stream = @admin_user.activity_stream(3)
assert_not(stream[0].group_id)
assert_equal(stream[0].o_id, user.id)
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.name, 'User')
assert_equal(stream[0].type.name, 'create')
assert_not(stream[1])
stream = @current_user.activity_stream(4)
assert(stream.blank?)
# cleanup
user.destroy!
travel_back
end
test 'user with update check true' do
user = User.create!(
login: 'someemail@example.com',
email: 'someemail@example.com',
firstname: 'Bob Smith II',
updated_by_id: @current_user.id,
created_by_id: @current_user.id,
)
travel 100.seconds
assert_equal(user.class, User)
user.update!(
firstname: 'Bob U',
lastname: 'Smith U',
)
updated_at = user.updated_at
travel 10.seconds
user.update!(
firstname: 'Bob',
lastname: 'Smith',
)
# check activity_stream
stream = @admin_user.activity_stream(3)
assert_not(stream[0].group_id)
assert_equal(stream[0].o_id, user.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.name, 'User')
assert_equal(stream[0].type.name, 'update')
assert_not(stream[1].group_id)
assert_equal(stream[1].o_id, user.id)
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.name, 'User')
assert_equal(stream[1].type.name, 'create')
assert_not(stream[2])
stream = @current_user.activity_stream(4)
assert(stream.blank?)
# cleanup
user.destroy!
travel_back
end
end