Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

rspec/capybara: how to simulate incoming POST requests? (rack-test won't work)

I need to receive incoming emails as multipart-formdata via a POST request from Cloudmailin. The POST resembles the following:

Parameters: {"to"=>"<[email protected]>", "from"=>"whomever@example", "subject"=>"my awesome subject line....

Actually, receiving and parsing emails is super easy because the email is just posted as params: params[:to], params[:from], etc. However, how do I simulate this POST request in rails?

I built a dummy rails app to test out Cloudmailin, so I have an actual request. However, it's a 6k character file, so I'd like to load this file as the parameters of the POST request. I've tried using the built rails post and post_via_redirect methods to load a file, but it escapes all of the parameters( \"to\"), which is no good. Any ideas?

like image 675
GoodGets Avatar asked Dec 17 '22 10:12

GoodGets


1 Answers

So, I ended up doing:

@parameters = { "x_to_header"=>"<#{ @detail.info }>",
                "to"=>"<#{ @account.slug }@cloudmailin.net>",
                "from"=>"#{ @member.email }",
                "subject"=>"meeting on Monday",
                "plain"=>"here is my message\nand this is a new line\n\n\nand two new lines\n\n\n\nand a third new line"
              }

then just:

post "/where_ever", @parameters

seems to get the job done for now

like image 142
GoodGets Avatar answered Dec 28 '22 06:12

GoodGets