[Tests only] Populate auto-generated UUID primary key

This commit is contained in:
Nikita Vasilevsky 2023-05-15 21:18:12 +00:00
parent 437856ba6b
commit 2f29722e7f
No known key found for this signature in database
GPG Key ID: 0FF5725CD31059E4
3 changed files with 35 additions and 0 deletions

@ -22,6 +22,7 @@
require "models/admin"
require "models/admin/user"
require "models/cpk"
require "models/chat_message"
class PersistenceTest < ActiveRecord::TestCase
fixtures :topics, :companies, :developers, :accounts, :minimalistics, :authors, :author_addresses,
@ -462,6 +463,23 @@ def test_create
assert_equal("New Topic", topic_reloaded.title)
end
def test_create_model_with_uuid_pk_populates_id
message = ChatMessage.create(content: "New Message")
assert_not_nil message.id
message_reloaded = ChatMessage.find(message.id)
assert_equal "New Message", message_reloaded.content
end if current_adapter?(:PostgreSQLAdapter)
def test_create_model_with_custom_named_uuid_pk_populates_id
message = ChatMessageCustomPk.create(content: "New Message")
assert_not_nil message.message_id
message_reloaded = ChatMessageCustomPk.find(message.message_id)
assert_equal "New Message", message_reloaded.content
end if current_adapter?(:PostgreSQLAdapter)
def test_build
topic = Topic.build(title: "New Topic")
assert_equal "New Topic", topic.title

@ -0,0 +1,8 @@
# frozen_string_literal: true
class ChatMessage < ActiveRecord::Base
end
class ChatMessageCustomPk < ActiveRecord::Base
self.table_name = "chat_messages_custom_pk"
end

@ -6,6 +6,15 @@
uuid_default = connection.supports_pgcrypto_uuid? ? {} : { default: "uuid_generate_v4()" }
create_table :chat_messages, id: :uuid, force: true, **uuid_default do |t|
t.text :content
end
create_table :chat_messages_custom_pk, id: false, force: true do |t|
t.uuid :message_id, primary_key: true, default: "uuid_generate_v4()"
t.text :content
end
create_table :uuid_parents, id: :uuid, force: true, **uuid_default do |t|
t.string :name
end