X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/5acd68562b23c0293140a9de6443855b6612266b..8ce476b7864f1a2d1f05cd0a770ae159eeb845eb:/services/api/test/unit/arvados_model_test.rb diff --git a/services/api/test/unit/arvados_model_test.rb b/services/api/test/unit/arvados_model_test.rb index d447c76c6d..64f7807135 100644 --- a/services/api/test/unit/arvados_model_test.rb +++ b/services/api/test/unit/arvados_model_test.rb @@ -97,7 +97,7 @@ class ArvadosModelTest < ActiveSupport::TestCase while longstring.length < 2**16 longstring = longstring + longstring end - g = Group.create! name: 'Has a long description', description: longstring + g = Group.create! name: 'Has a long description', description: longstring, group_class: "project" g = Group.find_by_uuid g.uuid assert_equal g.description, longstring end @@ -248,7 +248,7 @@ class ArvadosModelTest < ActiveSupport::TestCase test 'create and retrieve using created_at time' do set_user_from_auth :active - group = Group.create! name: 'test create and retrieve group' + group = Group.create! name: 'test create and retrieve group', group_class: "project" assert group.valid?, "group is not valid" results = Group.where(created_at: group.created_at) @@ -258,7 +258,7 @@ class ArvadosModelTest < ActiveSupport::TestCase test 'create and update twice and expect different update times' do set_user_from_auth :active - group = Group.create! name: 'test create and retrieve group' + group = Group.create! name: 'test create and retrieve group', group_class: "project" assert group.valid?, "group is not valid" # update 1 @@ -295,4 +295,29 @@ class ArvadosModelTest < ActiveSupport::TestCase c.reload assert_equal({'foo' => 'bar'}, c.properties) end + + test 'serialized attributes dirty tracking with audit log settings' do + Rails.configuration.AuditLogs.MaxDeleteBatch = 1000 + set_user_from_auth :admin + [false, true].each do |auditlogs_enabled| + if auditlogs_enabled + Rails.configuration.AuditLogs.MaxAge = 3600 + else + Rails.configuration.AuditLogs.MaxAge = 0 + end + [ + User.find_by_uuid(users(:active).uuid), + ContainerRequest.find_by_uuid(container_requests(:queued).uuid), + Container.find_by_uuid(containers(:queued).uuid), + PipelineInstance.find_by_uuid(pipeline_instances(:has_component_with_completed_jobs).uuid), + PipelineTemplate.find_by_uuid(pipeline_templates(:two_part).uuid), + Job.find_by_uuid(jobs(:running).uuid) + ].each do |obj| + assert_not(obj.class.serialized_attributes.empty?, + "#{obj.class} model doesn't have serialized attributes") + # obj shouldn't have changed since it's just retrieved from the database + assert_not(obj.changed?, "#{obj.class} model's attribute(s) appear as changed: '#{obj.changes.keys.join(',')}' with audit logs #{auditlogs_enabled ? '': 'not '}enabled.") + end + end + end end