trabajo-afectivo/spec/factories/object_manager_attribute.rb

285 lines
7.8 KiB
Ruby

# Copyright (C) 2012-2021 Zammad Foundation, http://zammad-foundation.org/
FactoryBot.define do
factory :object_manager_attribute, class: 'ObjectManager::Attribute' do
transient do
object_name { 'Ticket' }
additional_data_options { nil }
default { nil }
end
object_lookup_id { ObjectLookup.by_name(object_name) }
sequence(:name) { |n| "internal_name#{n}" }
sequence(:display) { |n| "Display Name #{n}" }
data_option_new { {} }
editable { true }
active { true }
add_attribute(:to_create) { true }
to_migrate { true }
to_delete { false }
to_config { false }
position { 15 }
updated_by_id { 1 }
created_by_id { 1 }
screens do
{
'create_top' => {
'-all-' => {
'null' => false
}
},
'edit' => {}
}
end
callback(:after_stub, :before_create) do |object, context|
next if context.additional_data_options.blank?
object.data_option ||= {}
object.data_option.merge! context.additional_data_options
end
end
factory :object_manager_attribute_text, parent: :object_manager_attribute do
data_type { 'input' }
data_option do
{
'type' => 'text',
'maxlength' => 200,
'null' => true,
'translate' => false,
'default' => default || '',
'options' => {},
'relation' => '',
}
end
end
factory :object_manager_attribute_integer, parent: :object_manager_attribute do
data_type { 'integer' }
data_option do
{
'default' => default || 0,
'min' => 0,
'max' => 9999,
}
end
end
factory :object_manager_attribute_boolean, parent: :object_manager_attribute do
data_type { 'boolean' }
data_option do
{
default: default || false,
options: {
true => 'yes',
false => 'no',
}
}
end
end
factory :object_manager_attribute_date, parent: :object_manager_attribute do
name { 'date_attribute' }
data_type { 'date' }
data_option do
{
'diff' => default || 24,
'null' => true,
}
end
end
factory :object_manager_attribute_datetime, parent: :object_manager_attribute do
name { 'datetime_attribute' }
data_type { 'datetime' }
data_option do
{
'future' => true,
'past' => true,
'diff' => default || 24,
'null' => true,
}
end
end
factory :object_manager_attribute_select, parent: :object_manager_attribute do
data_type { 'select' }
data_option do
{
'default' => default || '',
'options' => {
'key_1' => 'value_1',
'key_2' => 'value_2',
'key_3' => 'value_3',
},
'relation' => '',
'nulloption' => true,
'multiple' => false,
'null' => true,
'translate' => true,
'maxlength' => 255
}
end
end
factory :object_manager_attribute_tree_select, parent: :object_manager_attribute do
data_type { 'tree_select' }
data_option do
{
'options' => [
{
'name' => 'Incident',
'value' => 'Incident',
'children' => [
{
'name' => 'Hardware',
'value' => 'Incident::Hardware',
'children' => [
{
'name' => 'Monitor',
'value' => 'Incident::Hardware::Monitor'
},
{
'name' => 'Mouse',
'value' => 'Incident::Hardware::Mouse'
},
{
'name' => 'Keyboard',
'value' => 'Incident::Hardware::Keyboard'
}
]
},
{
'name' => 'Softwareproblem',
'value' => 'Incident::Softwareproblem',
'children' => [
{
'name' => 'CRM',
'value' => 'Incident::Softwareproblem::CRM'
},
{
'name' => 'EDI',
'value' => 'Incident::Softwareproblem::EDI'
},
{
'name' => 'SAP',
'value' => 'Incident::Softwareproblem::SAP',
'children' => [
{
'name' => 'Authentication',
'value' => 'Incident::Softwareproblem::SAP::Authentication'
},
{
'name' => 'Not reachable',
'value' => 'Incident::Softwareproblem::SAP::Not reachable'
}
]
},
{
'name' => 'MS Office',
'value' => 'Incident::Softwareproblem::MS Office',
'children' => [
{
'name' => 'Excel',
'value' => 'Incident::Softwareproblem::MS Office::Excel'
},
{
'name' => 'PowerPoint',
'value' => 'Incident::Softwareproblem::MS Office::PowerPoint'
},
{
'name' => 'Word',
'value' => 'Incident::Softwareproblem::MS Office::Word'
},
{
'name' => 'Outlook',
'value' => 'Incident::Softwareproblem::MS Office::Outlook'
}
]
}
]
}
]
},
{
'name' => 'Service request',
'value' => 'Service request',
'children' => [
{
'name' => 'New software requirement',
'value' => 'Service request::New software requirement'
},
{
'name' => 'New hardware',
'value' => 'Service request::New hardware'
},
{
'name' => 'Consulting',
'value' => 'Service request::Consulting'
}
]
},
{
'name' => 'Change request',
'value' => 'Change request'
}
],
'default' => '',
'null' => true,
'relation' => '',
'maxlength' => 255,
'nulloption' => true,
}
end
end
factory :required_screen, class: Hash do
create_middle do
{
'ticket.customer' => {
shown: true,
required: true,
item_class: 'column'
},
'ticket.agent' => {
shown: true,
required: true,
item_class: 'column'
},
'admin.organization' => {
shown: true,
required: true,
},
'admin.group' => {
shown: true,
required: true,
item_class: 'column'
},
}
end
edit do
{
'ticket.customer' => {
shown: true,
required: true
},
'ticket.agent' => {
shown: true,
required: true
},
'admin.organization' => {
shown: true,
required: true,
},
'admin.group' => {
shown: true,
required: true,
item_class: 'column'
},
}
end
end
end