github.com/cozy/cozy-stack@v0.0.0-20240603063001-31110fa4cae1/tests/system/lib/email.rb (about) 1 class Email 2 MAILHOG = 'http://localhost:8025/api' 3 attr_reader :subject, :from, :to, :body, :parts 4 5 def initialize(opts = {}) 6 @subject = opts[:subject] 7 @from = opts[:from] 8 @to = opts[:to] 9 @body = opts[:body] 10 @parts = opts[:parts] || [] 11 end 12 13 def self.client 14 @client ||= RestClient::Resource.new MAILHOG 15 end 16 17 def self.clear_inbox 18 client["/v1/messages"].delete 19 end 20 21 def self.received(params) 22 client = RestClient::Resource.new MAILHOG 23 res = client["/v2/search"].get params: params 24 JSON.parse(res.body)["items"].map do |item| 25 subject = item.dig "Content", "Headers", "Subject", 0 26 from = item.dig "Content", "Headers", "From", 0 27 to = item.dig "Content", "Headers", "From", 0 28 parts = item.dig "MIME", "Parts" 29 body = parts.dig 0, "Body" 30 Email.new(subject: subject, from: from, to: to, body: body, parts: parts) 31 end 32 end 33 end