From 77b0b1dfeb1a65f15a7a0dcbe2a3ed7109a23eab Mon Sep 17 00:00:00 2001
From: Eulyeon Ko <eko@gitlab.com>
Date: Sat, 27 Jan 2024 18:58:52 +0900
Subject: [PATCH] Fix migration spec

`select true` assigns different column name depending on the environment.

Explicitly name the column and match against the name.
---
 .../swap_columns_for_system_note_metadata_id_spec.rb   | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/spec/migrations/swap_columns_for_system_note_metadata_id_spec.rb b/spec/migrations/swap_columns_for_system_note_metadata_id_spec.rb
index 91f8ff8384138..e4887512aa938 100644
--- a/spec/migrations/swap_columns_for_system_note_metadata_id_spec.rb
+++ b/spec/migrations/swap_columns_for_system_note_metadata_id_spec.rb
@@ -26,8 +26,8 @@
 
             primary_key_naming_check = query_constraint_by_name(:system_note_metadata, pk_name).first
             foreign_key_naming_check = query_constraint_by_name(:resource_link_events, fk_name).first
-            expect(primary_key_naming_check).to match("bool" => true)
-            expect(foreign_key_naming_check).to match("bool" => true)
+            expect(primary_key_naming_check).to match("constraint_exists" => true)
+            expect(foreign_key_naming_check).to match("constraint_exists" => true)
             expect(table.columns.find { |c| c.name == 'id' }.sql_type).to eq('integer')
             expect(table.columns.find { |c| c.name == 'id_convert_to_bigint' }.sql_type).to eq('bigint')
           }
@@ -37,8 +37,8 @@
 
             primary_key_naming_check = query_constraint_by_name(:system_note_metadata, pk_name).first
             foreign_key_naming_check = query_constraint_by_name(:resource_link_events, fk_name).first
-            expect(primary_key_naming_check).to match("bool" => true)
-            expect(foreign_key_naming_check).to match("bool" => true)
+            expect(primary_key_naming_check).to match("constraint_exists" => true)
+            expect(foreign_key_naming_check).to match("constraint_exists" => true)
             expect(table.columns.find { |c| c.name == 'id' }.sql_type).to eq('bigint')
             expect(table.columns.find { |c| c.name == 'id_convert_to_bigint' }.sql_type).to eq('integer')
           }
@@ -48,7 +48,7 @@
 
     def query_constraint_by_name(table_name, conname)
       described_class.new.connection.execute <<~SQL
-        SELECT true FROM pg_constraint c JOIN pg_class t ON t.oid = c.conrelid
+        SELECT true as constraint_exists FROM pg_constraint c JOIN pg_class t ON t.oid = c.conrelid
         WHERE t.relname = \'#{table_name}\' AND c.conname = \'#{conname}\';
       SQL
     end
-- 
GitLab