X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/b6f73f7acffa9b2f37c78826ff6cee89987a7edc..d87717b4ec885059183ef6d7fa6780c343338455:/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 a8175d3735..09dece2660 100644 --- a/services/api/test/unit/arvados_model_test.rb +++ b/services/api/test/unit/arvados_model_test.rb @@ -90,7 +90,7 @@ class ArvadosModelTest < ActiveSupport::TestCase test "store long string" do set_user_from_auth :active longstring = "a" - while longstring.length < 2**28 + while longstring.length < 2**16 longstring = longstring + longstring end g = Group.create! name: 'Has a long description', description: longstring @@ -129,10 +129,14 @@ class ArvadosModelTest < ActiveSupport::TestCase table_class = table.classify.constantize if table_class.respond_to?('searchable_columns') search_index_columns = table_class.searchable_columns('ilike') + # Disappointing, but text columns aren't indexed yet. + search_index_columns -= table_class.columns.select { |c| + c.type == :text or c.name == 'description' + }.collect(&:name) indexes = ActiveRecord::Base.connection.indexes(table) search_index_by_columns = indexes.select do |index| - index.columns == search_index_columns + index.columns.sort == search_index_columns.sort end search_index_by_name = indexes.select do |index| index.name == "#{table}_search_index" @@ -141,4 +145,26 @@ class ArvadosModelTest < ActiveSupport::TestCase end end end + + test "selectable_attributes includes database attributes" do + assert_includes(Job.selectable_attributes, "success") + end + + test "selectable_attributes includes non-database attributes" do + assert_includes(Job.selectable_attributes, "node_uuids") + end + + test "selectable_attributes includes common attributes in extensions" do + assert_includes(Job.selectable_attributes, "uuid") + end + + test "selectable_attributes does not include unexposed attributes" do + refute_includes(Job.selectable_attributes, "nodes") + end + + test "selectable_attributes on a non-default template" do + attr_a = Job.selectable_attributes(:common) + assert_includes(attr_a, "uuid") + refute_includes(attr_a, "success") + end end