[Tests only] Populate auto-generated UUID primary key
This commit is contained in:
parent
437856ba6b
commit
2f29722e7f
@ -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
|
||||
|
8
activerecord/test/models/chat_message.rb
Normal file
8
activerecord/test/models/chat_message.rb
Normal file
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user