Merged auto wizard test into unit tests to increase total speed of tests.
This commit is contained in:
parent
4a4deff2a7
commit
59d20eb30a
3 changed files with 252 additions and 16 deletions
|
@ -103,17 +103,6 @@ test:unit:postgresql:
|
|||
- ruby -I test/ test/integration/monitoring_controller_test.rb
|
||||
- rake db:drop
|
||||
|
||||
test:integration:autowizard:
|
||||
stage: test
|
||||
tags:
|
||||
- core
|
||||
script:
|
||||
- export RAILS_ENV=test
|
||||
- rake db:create
|
||||
- rake db:migrate
|
||||
- ruby -I test/ test/integration/auto_wizard_test.rb
|
||||
- rake db:drop
|
||||
|
||||
test:integration:email_helper:
|
||||
stage: test
|
||||
tags:
|
||||
|
|
|
@ -71,11 +71,6 @@ script:
|
|||
- rake db:create
|
||||
- rake db:migrate
|
||||
- rake db:seed
|
||||
- ruby -I test/ test/integration/auto_wizard_test.rb
|
||||
- rake db:drop
|
||||
- rake db:create
|
||||
- rake db:migrate
|
||||
- rake db:seed
|
||||
- ruby -I test/ test/integration/geo_location_test.rb
|
||||
- ruby -I test/ test/integration/geo_calendar_test.rb
|
||||
- ruby -I test/ test/integration/user_agent_test.rb
|
||||
|
|
252
test/unit/auto_wizard_test.rb
Normal file
252
test/unit/auto_wizard_test.rb
Normal file
|
@ -0,0 +1,252 @@
|
|||
|
||||
require 'test_helper'
|
||||
|
||||
class AutoWizardTest < ActiveSupport::TestCase
|
||||
|
||||
test 'a simple' do
|
||||
auto_wizard_data = {
|
||||
Users: [
|
||||
{
|
||||
login: 'master_unit_test01@example.com',
|
||||
firstname: 'Test Master',
|
||||
lastname: 'Agent',
|
||||
email: 'master_unit_test01@example.com',
|
||||
password: 'test',
|
||||
},
|
||||
{
|
||||
login: 'agent1_unit_test01@example.com',
|
||||
firstname: 'Agent 1',
|
||||
lastname: 'Test',
|
||||
email: 'agent1_unit_test01@example.com',
|
||||
password: 'test',
|
||||
roles: ['Agent'],
|
||||
}
|
||||
],
|
||||
Groups: [
|
||||
{
|
||||
name: 'some group1',
|
||||
users: ['master_unit_test01@example.com', 'agent1_unit_test01@example.com']
|
||||
}
|
||||
],
|
||||
Settings: [
|
||||
{
|
||||
name: 'developer_mode',
|
||||
value: true
|
||||
},
|
||||
{
|
||||
name: 'product_name',
|
||||
value: 'Zammad UnitTest01 System'
|
||||
},
|
||||
]
|
||||
}
|
||||
assert_equal(false, AutoWizard.enabled?)
|
||||
auto_wizard_file_write(auto_wizard_data)
|
||||
assert_equal(true, AutoWizard.enabled?)
|
||||
AutoWizard.setup
|
||||
assert_equal(false, AutoWizard.enabled?)
|
||||
|
||||
# check first user roles
|
||||
auto_wizard_data[:Users][0][:roles] = %w[Agent Admin]
|
||||
|
||||
auto_wizard_data[:Users].each do |local_user|
|
||||
user = User.find_by(login: local_user[:login])
|
||||
assert_equal(local_user[:login], user.login)
|
||||
assert_equal(local_user[:firstname], user.firstname)
|
||||
assert_equal(local_user[:lastname], user.lastname)
|
||||
assert_equal(local_user[:email], user.email)
|
||||
assert_equal(local_user[:roles].count, user.role_ids.count)
|
||||
next unless local_user[:roles]
|
||||
local_user[:roles].each do |local_role_name|
|
||||
local_role = Role.find_by(name: local_role_name)
|
||||
assert(user.role_ids.include?(local_role.id))
|
||||
end
|
||||
end
|
||||
auto_wizard_data[:Groups].each do |local_group|
|
||||
group = Group.find_by(name: local_group[:name])
|
||||
assert_equal(local_group[:name], group.name)
|
||||
next unless local_group[:users]
|
||||
local_group[:users].each do |local_user_login|
|
||||
local_user = User.find_by(login: local_user_login)
|
||||
assert(group.user_ids.include?(local_user.id))
|
||||
end
|
||||
end
|
||||
auto_wizard_data[:Settings].each do |local_setting|
|
||||
setting_value = Setting.get(local_setting[:name])
|
||||
assert_equal(local_setting[:value], setting_value)
|
||||
end
|
||||
end
|
||||
|
||||
test 'b complex' do
|
||||
auto_wizard_data = {
|
||||
Organizations: [
|
||||
{
|
||||
name: 'Auto Wizard Test Org',
|
||||
shared: false,
|
||||
}
|
||||
],
|
||||
Users: [
|
||||
{
|
||||
login: 'master_unit_test01@example.com',
|
||||
firstname: 'Test Master',
|
||||
lastname: 'Agent',
|
||||
email: 'master_unit_test01@example.com',
|
||||
password: 'test',
|
||||
organization: 'Auto Wizard Test Org',
|
||||
roles: ['Admin'],
|
||||
},
|
||||
{
|
||||
login: 'agent1_unit_test01@example.com',
|
||||
firstname: 'Agent 1',
|
||||
lastname: 'Test',
|
||||
email: 'agent1_unit_test01@example.com',
|
||||
password: 'test',
|
||||
roles: ['Agent'],
|
||||
}
|
||||
],
|
||||
Groups: [
|
||||
{
|
||||
name: 'some group1',
|
||||
users: ['master_unit_test01@example.com', 'agent1_unit_test01@example.com']
|
||||
},
|
||||
{
|
||||
name: 'Users',
|
||||
users: ['master_unit_test01@example.com', 'agent1_unit_test01@example.com'],
|
||||
signature: 'default',
|
||||
email_address_id: 1,
|
||||
note: 'Standard Group/Pool for Tickets.',
|
||||
}
|
||||
],
|
||||
Settings: [
|
||||
{
|
||||
name: 'developer_mode',
|
||||
value: false,
|
||||
},
|
||||
{
|
||||
name: 'product_name',
|
||||
value: 'Zammad UnitTest02 System'
|
||||
},
|
||||
],
|
||||
Permissions: [
|
||||
{
|
||||
name: 'admin.session',
|
||||
active: false,
|
||||
},
|
||||
{
|
||||
name: 'admin.session.new',
|
||||
active: true,
|
||||
},
|
||||
],
|
||||
Channels: [
|
||||
{
|
||||
id: 1,
|
||||
area: 'Email::Account',
|
||||
group: 'Users',
|
||||
options: {
|
||||
inbound: {
|
||||
adapter: 'imap',
|
||||
options: {
|
||||
host: 'mx1.example.com',
|
||||
user: 'not_existing',
|
||||
password: 'some_pass',
|
||||
ssl: true
|
||||
}
|
||||
},
|
||||
outbound: {
|
||||
adapter: 'sendmail'
|
||||
}
|
||||
},
|
||||
preferences: {
|
||||
online_service_disable: true,
|
||||
},
|
||||
active: true
|
||||
}
|
||||
],
|
||||
EmailAddresses: [
|
||||
{
|
||||
id: 1,
|
||||
channel_id: 1,
|
||||
realname: 'Zammad',
|
||||
email: 'zammad@localhost',
|
||||
}
|
||||
],
|
||||
TextModuleLocale: {
|
||||
Locale: 'de-de',
|
||||
},
|
||||
CalendarSetup: {
|
||||
Ip: '195.65.29.254',
|
||||
},
|
||||
}
|
||||
assert_equal(false, AutoWizard.enabled?)
|
||||
auto_wizard_file_write(auto_wizard_data)
|
||||
assert_equal(true, AutoWizard.enabled?)
|
||||
AutoWizard.setup
|
||||
assert_equal(false, AutoWizard.enabled?)
|
||||
|
||||
assert_not_equal(0, TextModule.count)
|
||||
assert_equal(1, Calendar.count)
|
||||
assert_equal('Switzerland', Calendar.first.name)
|
||||
assert_equal('Europe/Zurich', Calendar.first.timezone)
|
||||
|
||||
auto_wizard_data[:Users].each do |local_user|
|
||||
user = User.find_by(login: local_user[:login])
|
||||
assert_equal(local_user[:login], user.login)
|
||||
assert_equal(local_user[:firstname], user.firstname)
|
||||
assert_equal(local_user[:lastname], user.lastname)
|
||||
assert_equal(local_user[:email], user.email)
|
||||
next unless local_user[:roles]
|
||||
assert_equal(local_user[:roles].count, user.role_ids.count)
|
||||
local_user[:roles].each do |local_role_name|
|
||||
local_role = Role.find_by(name: local_role_name)
|
||||
assert(user.role_ids.include?(local_role.id))
|
||||
end
|
||||
end
|
||||
auto_wizard_data[:Groups].each do |local_group|
|
||||
group = Group.find_by(name: local_group[:name])
|
||||
assert_equal(local_group[:name], group.name)
|
||||
local_group[:users]&.each do |local_user_login|
|
||||
local_user = User.find_by(login: local_user_login)
|
||||
assert(group.user_ids.include?(local_user.id))
|
||||
end
|
||||
if local_group[:signature]
|
||||
signature = group.signature
|
||||
assert_equal('default', signature.name)
|
||||
end
|
||||
end
|
||||
auto_wizard_data[:EmailAddresses].each do |local_email_address|
|
||||
email_address = EmailAddress.find_by(email: local_email_address[:email])
|
||||
assert_equal(local_email_address[:email], email_address.email)
|
||||
assert_equal(local_email_address[:realname], email_address.realname)
|
||||
channel = email_address.channel
|
||||
assert_equal(local_email_address[:channel_id], email_address.channel.id)
|
||||
end
|
||||
auto_wizard_data[:Channels].each do |local_channel|
|
||||
channel = Channel.find_by(id: local_channel[:id])
|
||||
assert_equal(local_channel[:area], channel.area)
|
||||
group = channel.group
|
||||
assert_equal(local_channel[:group], group.name)
|
||||
end
|
||||
auto_wizard_data[:Settings].each do |local_setting|
|
||||
setting_value = Setting.get(local_setting[:name])
|
||||
assert_equal(local_setting[:value], setting_value)
|
||||
end
|
||||
auto_wizard_data[:Permissions].each do |local_permission|
|
||||
permission = Permission.find_by(name: local_permission[:name])
|
||||
assert_equal(local_permission[:name], permission.name)
|
||||
assert_equal(local_permission[:active], permission.active)
|
||||
end
|
||||
end
|
||||
|
||||
def auto_wizard_file_write(data)
|
||||
location = Rails.root.join('auto_wizard.json')
|
||||
file = File.new(location, 'wb')
|
||||
file.write(data.to_json)
|
||||
file.close
|
||||
end
|
||||
|
||||
def auto_wizard_file_exists?
|
||||
location = Rails.root.join('auto_wizard.json')
|
||||
return false if File.exist?(location)
|
||||
true
|
||||
end
|
||||
|
||||
end
|
Loading…
Reference in a new issue