Skip to content

Commit

Permalink
Refactor tests for refute_email_delivered_with
Browse files Browse the repository at this point in the history
  • Loading branch information
mtarnovan committed Oct 4, 2019
1 parent 249ce54 commit e8fb16d
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 25 deletions.
2 changes: 1 addition & 1 deletion lib/bamboo/test.ex
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,7 @@ defmodule Bamboo.Test do
refute_email_delivered_with(subject: "something else") # Will pass
email = Bamboo.Email.new_email(subject: "something") |> MyApp.Mailer.deliver
refute_email_delivered_with(subject: ~r/some/") # Will fail
refute_email_delivered_with(subject: ~r/some/) # Will fail
"""
defmacro refute_email_delivered_with(email_params) do
quote bind_quoted: [email_params: email_params] do
Expand Down
57 changes: 33 additions & 24 deletions test/lib/bamboo/adapters/test_adapter_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -173,34 +173,43 @@ defmodule Bamboo.TestAdapterTest do
end

test "refute_email_delivered_with when email does not match" do
new_email(
to: {nil, "foo@bar.com"},
from: {nil, "foo@bar.com"},
text_body: "I really like coffee"
)
|> TestMailer.deliver_now()

refute_email_delivered_with(text_body: ~r/tea/)
refute_email_delivered_with(to: "bla")
refute_email_delivered_with(to: "foo@baz.com")
refute_email_delivered_with(from: "foo@baz.com")
mail =
new_email(
to: [nil: "foo@bar.com"],
from: {nil, "baz@bar.com"},
subject: "coffee"
)

TestMailer.deliver_now(mail)
refute_email_delivered_with(subject: ~r/tea/)
refute_email_delivered_with(to: [nil: "something@else.com"])
end

test "refute_email_delivered_with when email matches" do
new_email(
to: {nil, "foo@bar.com"},
from: {nil, "foo@bar.com"},
text_body: "I really like coffee"
)
|> TestMailer.deliver_now()
mail =
new_email(
to: [nil: "foo@bar.com"],
from: {nil, "foo@bar.com"},
subject: "vodka",
text_body: "I really like coffee"
)

try do
refute_email_delivered_with(to: [nil: "foo@bar.com"])
rescue
error in [ExUnit.AssertionError] ->
assert error.message =~ "parameters given match"
else
_ -> flunk("refute_email_delivered_with should have failed")
TestMailer.deliver_now(mail)

assert_raise ExUnit.AssertionError, fn ->
refute_email_delivered_with(to: mail.to)
end

TestMailer.deliver_now(mail)

assert_raise ExUnit.AssertionError, fn ->
refute_email_delivered_with(subject: mail.subject)
end

TestMailer.deliver_now(mail)

assert_raise ExUnit.AssertionError, fn ->
refute_email_delivered_with(text_body: ~r/coffee/)
end
end

Expand Down

0 comments on commit e8fb16d

Please sign in to comment.