Put user.variables in Mailbluster create test

This commit is contained in:
Ziyi 2021-03-16 14:28:39 -07:00 committed by CactusPuppy
parent 4db10c1a8f
commit 1f3832c883
No known key found for this signature in database
GPG key ID: 4B33B0A3E15E2C82
2 changed files with 27 additions and 17 deletions

View file

@ -2,6 +2,10 @@
module External module External
module MailblusterHelper module MailblusterHelper
def query_api()
end
def create_lead(user) def create_lead(user)
# TODO # TODO
begin begin
@ -16,14 +20,18 @@ module External
'subscribed' => true, 'subscribed' => true,
'tags' => ["snapcon"], 'tags' => ["snapcon"],
}.to_json }.to_json
puts request.body.to_json
response = http.request(request) response = http.request(request)
puts response.body.to_json # puts request.body.to_json
# puts response.body.to_json
return response.to_json return response.to_json
rescue => e rescue => e
puts "ERROR #{e}" puts "ERROR #{e}"
return nil return nil
end end
end end
def delete_lead(user)
end
end end
end end

View file

@ -8,22 +8,23 @@ describe External::MailblusterHelper, type: :helper do
describe 'create_lead' do describe 'create_lead' do
it 'makes a post request to Mailbluster\'s API' do it 'makes a post request to Mailbluster\'s API' do
stub_request(:post, "http://api.mailbluster.com/api/leads") response_body = "{
.to_return(body: `{ \"message\": \"Lead created\",
"message": "Lead created", \"lead\": {
"lead": { \"id\": 329395,
"id": 329395, \"firstName\": \"#{user.name}\",
"firstName": "#{user.name}", \"lastName\": \"\",
"lastName": "", \"fullName\": \"#{user.name}\",
"fullName": "#{user.name}", \"email\": \"#{user.email}\",
"email": "#{user.email}", \"subscribed\": true,
"subscribed": true, \"tags\": [
"tags": [ \"snapcon\"
"snapcon"
], ],
} }
}`, status: 200) }"
create_lead(user) stub_request(:post, "http://api.mailbluster.com/api/leads")
.to_return(body: response_body, status: 200)
response = create_lead(user)
expect(WebMock).to have_requested(:post, "api.mailbluster.com/api/leads").with(body: { expect(WebMock).to have_requested(:post, "api.mailbluster.com/api/leads").with(body: {
'email': user.email, 'email': user.email,
'firstName': user.name, 'firstName': user.name,
@ -31,6 +32,7 @@ describe External::MailblusterHelper, type: :helper do
'subscribed': true, 'subscribed': true,
'tags': ["snapcon"], 'tags': ["snapcon"],
}.to_json) }.to_json)
expect(response).to eq(response_body)
end end
end end
end end