I hereby claim:
- I am lasseebert on github.
- I am lasseebert (https://keybase.io/lasseebert) on keybase.
- I have a public key ASCwCSpB0kgQzneAi5asC6XLsoCFuUaiQa4wQICeeZkKqQo
To claim this, I am signing this object:
| defmodule Hub do | |
| @moduledoc """ | |
| Publish/subscribe server. | |
| Subscription is done with a pattern. | |
| Example: | |
| {:ok, _pid} = Hub.start_link(name: :hub) | |
| Hub.subscribe(:hub, %{count: count} when count > 42) |
I hereby claim:
To claim this, I am signing this object:
| $ mix test | |
| ........ | |
| Finished in 0.09 seconds | |
| 8 tests, 0 failures | |
| Randomized with seed 776617 |
| $ mix test | |
| ....... | |
| 1) test it uses mock in tests (MyApp.MailerTest) | |
| test/mailer_test.exs:4 | |
| ** (exit) exited in: GenServer.call(MyApp.Mailer.Mock, {:update, #Function<0.6592501/1 in MyApp.Mailer.Mock.clear/0>}, 5000) | |
| ** (EXIT) no process | |
| stacktrace: | |
| (elixir) lib/gen_server.ex:596: GenServer.call/3 | |
| test/mailer_test.exs:5: (test) |
| $ mix test | |
| Compiling 18 files (.ex) | |
| == Compilation error on file lib/my_app/mailer/mailgun.ex == | |
| ** (ArgumentError) application :my_app is not loaded, or the configuration parameter :mailgun_domain is not set | |
| (elixir) lib/application.ex:261: Application.fetch_env!/2 | |
| lib/my_app/mailer/mailgun.ex:5: (module) | |
| (stdlib) erl_eval.erl:670: :erl_eval.do_apply/6 |
| defmodule MyApp.Mailer.Mailgun do | |
| @behaviour MyApp.Mailer.Behaviour | |
| use Mailgun.Client, [ | |
| domain: Application.fetch_env!(:my_app, :mailgun_domain), | |
| key: Application.fetch_env!(:my_app, :mailgun_key) | |
| ] | |
| def send_mail(mail) do | |
| {:ok, _} = send_email(mail) |
| defmodule MyApp.Mailer do | |
| @from "[email protected]" | |
| @mailer_impl Application.fetch_env!(:my_app, :mailer) | |
| defmodule Behaviour do | |
| @callback send_mail([key: String.t]) :: :ok | |
| end | |
| def send_test_mail(email) do | |
| :ok = @mailer_impl.send_mail( |
| $ mix test | |
| Compiling 16 files (.ex) | |
| == Compilation error on file lib/my_app/mailer.ex == | |
| ** (ArgumentError) application :my_app is not loaded, or the configuration parameter :mailgun_domain is not set | |
| (elixir) lib/application.ex:261: Application.fetch_env!/2 | |
| lib/my_app/mailer.ex:3: (module) | |
| (stdlib) erl_eval.erl:670: :erl_eval.do_apply/6 |
| defmodule MyApp.MailerTest do | |
| use ExUnit.Case | |
| test "it uses mock in tests" do | |
| MyApp.Mailer.Mock.clear | |
| MyApp.Mailer.send_test_mail("[email protected]") | |
| assert MyApp.Mailer.Mock.mails |> length == 1 | |
| [mail] = MyApp.Mailer.Mock.mails |
| defmodule MyApp.Mailer do | |
| use Mailgun.Client, [ | |
| domain: Application.fetch_env!(:my_app, :mailgun_domain), | |
| key: Application.fetch_env!(:my_app, :mailgun_key) | |
| ] | |
| @from "[email protected]" | |
| def send_test_mail(email) do | |
| {:ok, _} = send_email [ |