summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/exirc/exirc.ex8
-rw-r--r--test/client_test.exs11
2 files changed, 17 insertions, 2 deletions
diff --git a/lib/exirc/exirc.ex b/lib/exirc/exirc.ex
index 7f1ff63..719c9ed 100644
--- a/lib/exirc/exirc.ex
+++ b/lib/exirc/exirc.ex
@@ -30,6 +30,7 @@ defmodule ExIrc do
"""
use Supervisor
+ import Supervisor.Spec
##############
# Public API
@@ -49,7 +50,7 @@ defmodule ExIrc do
@spec start_client! :: {:ok, pid} | {:error, term}
def start_client! do
# Start the client worker
- :supervisor.start_child(:exirc, worker(ExIrc.Client, []))
+ :supervisor.start_child(:exirc, [])
end
##############
@@ -58,7 +59,10 @@ defmodule ExIrc do
@spec init(any) :: {:ok, pid} | {:error, term}
def init(_) do
- supervise [], strategy: :one_for_one
+ children = [
+ worker(ExIrc.Client, [], restart: :transient)
+ ]
+ supervise children, strategy: :simple_one_for_one
end
end
diff --git a/test/client_test.exs b/test/client_test.exs
new file mode 100644
index 0000000..6cff0b7
--- /dev/null
+++ b/test/client_test.exs
@@ -0,0 +1,11 @@
+defmodule ExIrc.ClientTest do
+ use ExUnit.Case
+
+
+ test "start multiple clients" do
+ {:ok, pid} = ExIrc.start_client!
+ {:ok, pid2} = ExIrc.start_client!
+ assert pid != pid2
+ end
+
+end