From 2eafde8ff6f3228fce34a3e25dad6b2d2f171ba9 Mon Sep 17 00:00:00 2001 From: Lucas Di Pentima Date: Thu, 5 Jan 2017 17:59:28 -0300 Subject: [PATCH] 10223: Added test to check for missing full text search indexes --- services/api/test/unit/arvados_model_test.rb | 22 ++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/services/api/test/unit/arvados_model_test.rb b/services/api/test/unit/arvados_model_test.rb index 6918aa0d00..676581470c 100644 --- a/services/api/test/unit/arvados_model_test.rb +++ b/services/api/test/unit/arvados_model_test.rb @@ -146,6 +146,28 @@ class ArvadosModelTest < ActiveSupport::TestCase end end + test "full text search index exists on models" do + fts_tables = ["collections", "container_requests", "groups", "jobs", + "pipeline_instances", "pipeline_templates", "workflows"] + fts_tables.each do |table| + table_class = table.classify.constantize + if table_class.respond_to?('full_text_searchable_columns') + fts_index_columns = table_class.full_text_searchable_columns + index_columns = nil + indexes = ActiveRecord::Base.connection.indexes(table) + fts_index_by_columns = indexes.select do |index| + if index.columns.first.match(/to_tsvector/) + index_columns = index.columns.first.scan(/\((?[A-Za-z_]+)\,/).flatten! + index_columns.sort == fts_index_columns.sort + else + false + end + end + assert !fts_index_by_columns.empty?, "#{table} has no FTS index with columns #{fts_index_columns}. Instead found FTS index with columns #{index_columns}" + end + end + end + test "selectable_attributes includes database attributes" do assert_includes(Job.selectable_attributes, "success") end -- 2.39.5