مراية لـ
https://github.com/postalserver/postal.git
تم المزامنة 2025-11-30 21:32:30 +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.
هذا الالتزام موجود في:
@@ -4,7 +4,8 @@ require "rails_helper"
|
||||
|
||||
describe Postal::MessageDB::Database do
|
||||
context "when provisioned" do
|
||||
subject(:database) { GLOBAL_SERVER.message_db }
|
||||
let(:server) { create(:server) }
|
||||
subject(:database) { server.message_db }
|
||||
|
||||
it "should be a message db" do
|
||||
expect(database).to be_a Postal::MessageDB::Database
|
||||
|
||||
@@ -3,25 +3,23 @@
|
||||
require "rails_helper"
|
||||
|
||||
describe Postal::MessageParser do
|
||||
let(:server) { create(:server) }
|
||||
|
||||
it "should not do anything when there are no tracking domains" do
|
||||
with_global_server do |server|
|
||||
expect(server.track_domains.size).to eq 0
|
||||
message = create_plain_text_message(server, "Hello world!", "test@example.com")
|
||||
parser = Postal::MessageParser.new(message)
|
||||
expect(parser.actioned?).to be false
|
||||
expect(parser.tracked_links).to eq 0
|
||||
expect(parser.tracked_images).to eq 0
|
||||
end
|
||||
expect(server.track_domains.size).to eq 0
|
||||
message = create_plain_text_message(server, "Hello world!", "test@example.com")
|
||||
parser = Postal::MessageParser.new(message)
|
||||
expect(parser.actioned?).to be false
|
||||
expect(parser.tracked_links).to eq 0
|
||||
expect(parser.tracked_images).to eq 0
|
||||
end
|
||||
|
||||
it "should replace links in messages" do
|
||||
with_global_server do |server|
|
||||
message = create_plain_text_message(server, "Hello world! http://github.com/atech/postal", "test@example.com")
|
||||
create(:track_domain, server: server, domain: message.domain)
|
||||
parser = Postal::MessageParser.new(message)
|
||||
expect(parser.actioned?).to be true
|
||||
expect(parser.new_body).to match(/^Hello world! https:\/\/click\.#{message.domain.name}/)
|
||||
expect(parser.tracked_links).to eq 1
|
||||
end
|
||||
message = create_plain_text_message(server, "Hello world! http://github.com/atech/postal", "test@example.com")
|
||||
create(:track_domain, server: server, domain: message.domain)
|
||||
parser = Postal::MessageParser.new(message)
|
||||
expect(parser.actioned?).to be true
|
||||
expect(parser.new_body).to match(/^Hello world! https:\/\/click\.#{message.domain.name}/)
|
||||
expect(parser.tracked_links).to eq 1
|
||||
end
|
||||
end
|
||||
|
||||
@@ -7,7 +7,7 @@ module Postal
|
||||
|
||||
describe Client do
|
||||
let(:ip_address) { "1.2.3.4" }
|
||||
let(:server) { GLOBAL_SERVER } # We'll use the global server instance for this
|
||||
let(:server) { create(:server) }
|
||||
subject(:client) { described_class.new(ip_address) }
|
||||
|
||||
let(:credential) { create(:credential, server: server, type: "SMTP") }
|
||||
@@ -22,10 +22,6 @@ module Postal
|
||||
client.handle("RCPT TO: #{rcpt_to}")
|
||||
end
|
||||
|
||||
after do
|
||||
server.message_db.provisioner.clean
|
||||
end
|
||||
|
||||
describe "when finished sending data" do
|
||||
context "when the data is larger than the maximum message size" do
|
||||
it "returns an error and resets the state" do
|
||||
|
||||
المرجع في مشكلة جديدة
حظر مستخدم