X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/f824f854b26dbf5e6c1d10dc3eb4689349dd71fe..09a2e88c51e5432e607f2a38466e55b4ba15e887:/services/api/test/unit/log_test.rb diff --git a/services/api/test/unit/log_test.rb b/services/api/test/unit/log_test.rb index 6bca80c778..efbb189c9f 100644 --- a/services/api/test/unit/log_test.rb +++ b/services/api/test/unit/log_test.rb @@ -6,10 +6,10 @@ class LogTest < ActiveSupport::TestCase EVENT_TEST_METHODS = { :create => [:created_at, :assert_nil, :assert_not_nil], :update => [:modified_at, :assert_not_nil, :assert_not_nil], - :destroy => [nil, :assert_not_nil, :assert_nil], + :delete => [nil, :assert_not_nil, :assert_nil], } - def setup + setup do @start_time = Time.now @log_count = 1 end @@ -56,10 +56,11 @@ class LogTest < ActiveSupport::TestCase def assert_logged_with_clean_properties(obj, event_type, excluded_attr) assert_logged(obj, event_type) do |props| - ['old_attributes', 'new_attributes'].map { |k| props[k] }.compact - .each do |attributes| + ['old_attributes', 'new_attributes'].map do |logattr| + attributes = props[logattr] + next if attributes.nil? refute_includes(attributes, excluded_attr, - "log properties includes #{excluded_attr}") + "log #{logattr} includes #{excluded_attr}") end yield props if block_given? end @@ -115,7 +116,7 @@ class LogTest < ActiveSupport::TestCase orig_attrs = auth.attributes orig_attrs.delete 'api_token' auth.destroy - assert_logged(auth, :destroy) do |props| + assert_logged(auth, :delete) do |props| assert_equal(orig_etag, props['old_etag'], "destroyed auth etag mismatch") assert_equal(orig_attrs, props['old_attributes'], "destroyed auth attributes mismatch") @@ -229,7 +230,7 @@ class LogTest < ActiveSupport::TestCase auth.save! assert_logged_with_clean_properties(auth, :update, 'api_token') auth.destroy - assert_logged_with_clean_properties(auth, :destroy, 'api_token') + assert_logged_with_clean_properties(auth, :delete, 'api_token') end test "use ownership and permission links to determine which logs a user can see" do @@ -252,7 +253,8 @@ class LogTest < ActiveSupport::TestCase :crunchstat_for_running_job] # log & job owned by active c = Log.readable_by(users(:spectator)).order("id asc").each.to_a - assert_log_result c, known_logs, [:admin_changes_specimen, # owned by spectator + assert_log_result c, known_logs, [:noop, # object_uuid is spectator + :admin_changes_specimen, # object_uuid is a specimen owned by spectator :system_adds_baz] # readable via 'all users' group end @@ -270,15 +272,39 @@ class LogTest < ActiveSupport::TestCase end end - test "manifest_text not included in collection logs" do + test "non-empty configuration.unlogged_attributes" do + Rails.configuration.unlogged_attributes = ["manifest_text"] + txt = ". acbd18db4cc2f85cedef654fccc4a4d8+3 0:3:foo\n" + act_as_system_user do - coll = Collection.create(manifest_text: ". acbd18db4cc2f85cedef654fccc4a4d8+3 0:3:foo\n") + coll = Collection.create(manifest_text: txt) assert_logged_with_clean_properties(coll, :create, 'manifest_text') coll.name = "testing" coll.save! assert_logged_with_clean_properties(coll, :update, 'manifest_text') coll.destroy - assert_logged_with_clean_properties(coll, :destroy, 'manifest_text') + assert_logged_with_clean_properties(coll, :delete, 'manifest_text') + end + end + + test "empty configuration.unlogged_attributes" do + Rails.configuration.unlogged_attributes = [] + txt = ". acbd18db4cc2f85cedef654fccc4a4d8+3 0:3:foo\n" + + act_as_system_user do + coll = Collection.create(manifest_text: txt) + assert_logged(coll, :create) do |props| + assert_equal(txt, props['new_attributes']['manifest_text']) + end + coll.update_attributes!(name: "testing") + assert_logged(coll, :update) do |props| + assert_equal(txt, props['old_attributes']['manifest_text']) + assert_equal(txt, props['new_attributes']['manifest_text']) + end + coll.destroy + assert_logged(coll, :delete) do |props| + assert_equal(txt, props['old_attributes']['manifest_text']) + end end end end