Commit 64202f6

mokha <mokha@cisco.com>
2019-03-08 17:47:53
advertise enhanced status codes and rename method.
1 parent 5b46f15
Changed files (3)
lib/minbox/client.rb
@@ -8,7 +8,7 @@ module Minbox
       @socket = socket
     end
 
-    def mail_message(&block)
+    def handle(&block)
       write "220"
       while connected? && (line = read)
         case line
@@ -61,6 +61,7 @@ module Minbox
       _ehlo, _client_domain = line.split(" ")
       write "250-#{host}"
       #write "250 AUTH PLAIN LOGIN"
+      write "250-ENHANCEDSTATUSCODES"
       write "250 OK"
     end
 
lib/minbox/server.rb
@@ -22,7 +22,7 @@ module Minbox
 
     def handle(socket, &block)
       logger.debug("client connected: #{socket.inspect}")
-      Client.new(host, socket, logger).mail_message(&block)
+      Client.new(host, socket, logger).handle(&block)
     end
 
     def shutdown!
spec/minbox/server_spec.rb
@@ -75,6 +75,25 @@ RSpec.describe Minbox::Server do
         specify { expect(result).to be_success }
         specify { expect(result.status.to_i).to eql(250) }
       end
+
+      context "with html part" do
+        let(:result) do
+          mail = create_mail do |x|
+            x.text_part do
+              body 'this is plain text'
+            end
+            x.html_part do
+              body '<h1>this is html</h1>'
+            end
+          end
+          Net::SMTP.start(host, port) do |smtp|
+            smtp.send_message(mail.to_s, Faker::Internet.email, Faker::Internet.email)
+          end
+        end
+
+        specify { expect(result).to be_success }
+        specify { expect(result.status.to_i).to eql(250) }
+      end
     end
   end
 end