مراية لـ
https://github.com/postalserver/postal.git
تم المزامنة 2026-03-03 22:34:09 +00:00
test: add tests for message unqueueing
This adds a comprehensive set of tests for the message unqueueing service. Additionally, it improves how message databases are used for testing environments.
هذا الالتزام موجود في:
@@ -12,9 +12,10 @@ module Postal
|
||||
|
||||
end
|
||||
|
||||
def initialize(organization_id, server_id)
|
||||
def initialize(organization_id, server_id, database_name: nil)
|
||||
@organization_id = organization_id
|
||||
@server_id = server_id
|
||||
@database_name = database_name
|
||||
end
|
||||
|
||||
attr_reader :organization_id
|
||||
|
||||
@@ -39,6 +39,10 @@ module Postal
|
||||
@attributes = attributes
|
||||
end
|
||||
|
||||
def reload
|
||||
self.class.find_one(@database, @attributes["id"])
|
||||
end
|
||||
|
||||
#
|
||||
# Return the server for this message
|
||||
#
|
||||
@@ -200,9 +204,9 @@ module Postal
|
||||
#
|
||||
# Save this message
|
||||
#
|
||||
def save
|
||||
def save(queue_on_create: true)
|
||||
save_raw_message
|
||||
persisted? ? _update : _create
|
||||
persisted? ? _update : _create(queue: queue_on_create)
|
||||
self
|
||||
end
|
||||
|
||||
@@ -346,8 +350,14 @@ module Postal
|
||||
#
|
||||
# Create a new item in the message queue for this message
|
||||
#
|
||||
def add_to_message_queue(options = {})
|
||||
QueuedMessage.create!(message: self, server_id: @database.server_id, batch_key: batch_key, domain: recipient_domain, route_id: route_id, manual: options[:manual]).id
|
||||
def add_to_message_queue(**options)
|
||||
QueuedMessage.create!({
|
||||
message: self,
|
||||
server_id: @database.server_id,
|
||||
batch_key: batch_key,
|
||||
domain: recipient_domain,
|
||||
route_id: route_id
|
||||
}.merge(options))
|
||||
end
|
||||
|
||||
#
|
||||
@@ -572,7 +582,7 @@ module Postal
|
||||
@database.update("messages", @attributes.except(:id), where: { id: @attributes["id"] })
|
||||
end
|
||||
|
||||
def _create
|
||||
def _create(queue: true)
|
||||
self.timestamp = Time.now.to_f if timestamp.blank?
|
||||
self.status = "Pending" if status.blank?
|
||||
self.token = Nifty::Utils::RandomString.generate(length: 12) if token.blank?
|
||||
@@ -581,7 +591,7 @@ module Postal
|
||||
@database.statistics.increment_all(timestamp, scope)
|
||||
Statistic.global.increment!(:total_messages)
|
||||
Statistic.global.increment!("total_#{scope}".to_sym)
|
||||
add_to_message_queue
|
||||
add_to_message_queue if queue
|
||||
end
|
||||
|
||||
def mail
|
||||
|
||||
@@ -3,13 +3,6 @@
|
||||
module Postal
|
||||
module RspecHelpers
|
||||
|
||||
def with_global_server(&block)
|
||||
server = Server.find(GLOBAL_SERVER.id)
|
||||
block.call(server)
|
||||
ensure
|
||||
server.message_db.provisioner.clean
|
||||
end
|
||||
|
||||
def create_plain_text_message(server, text, to = "test@example.com", override_attributes = {})
|
||||
domain = create(:domain, owner: server)
|
||||
attributes = { from: "test@#{domain.name}", subject: "Test Plain Text Message" }.merge(override_attributes)
|
||||
|
||||
@@ -13,5 +13,10 @@ module Postal
|
||||
attr_accessor :time
|
||||
attr_accessor :suppress_bounce
|
||||
|
||||
def initialize
|
||||
@details = ""
|
||||
yield self if block_given?
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
المرجع في مشكلة جديدة
حظر مستخدم