1
0
مراية لـ https://github.com/postalserver/postal.git تم المزامنة 2025-12-01 05:43:04 +00:00
الملفات
postal/spec/factories/queued_message_factory.rb
Adam Cooke b4016f6b49 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.
2024-02-23 22:51:34 +00:00

60 أسطر
1.5 KiB
Ruby

# frozen_string_literal: true
# == Schema Information
#
# Table name: queued_messages
#
# id :integer not null, primary key
# attempts :integer default(0)
# batch_key :string(255)
# domain :string(255)
# locked_at :datetime
# locked_by :string(255)
# manual :boolean default(FALSE)
# retry_after :datetime
# created_at :datetime
# updated_at :datetime
# ip_address_id :integer
# message_id :integer
# route_id :integer
# server_id :integer
#
# Indexes
#
# index_queued_messages_on_domain (domain)
# index_queued_messages_on_message_id (message_id)
# index_queued_messages_on_server_id (server_id)
#
FactoryBot.define do
factory :queued_message do
domain { "example.com" }
transient do
message { nil }
end
after(:build) do |message, evaluator|
if evaluator.message
message.server = evaluator.message.server
message.message_id = evaluator.message.id
message.batch_key = evaluator.message.batch_key
message.domain = evaluator.message.recipient_domain
message.route_id = evaluator.message.route_id
else
message.server ||= create(:server)
message.message_id ||= 0
end
end
trait :locked do
locked_by { "worker1" }
locked_at { 5.minutes.ago }
end
trait :retry_in_future do
attempts { 2 }
retry_after { 1.hour.from_now }
end
end
end