diff --git a/lib/spark.ex b/lib/spark.ex index 21ee0ea..5a43a4f 100644 --- a/lib/spark.ex +++ b/lib/spark.ex @@ -46,7 +46,7 @@ defmodule Spark do # never seen a module with three behaviours in real life, let alone four. {:behaviour, behaviours} when is_list(behaviours) -> - module in behaviours + behaviour in behaviours _ -> false diff --git a/test/spark_test.exs b/test/spark_test.exs index f0d921e..2b8fa5e 100644 --- a/test/spark_test.exs +++ b/test/spark_test.exs @@ -6,4 +6,19 @@ defmodule SparkTest do use ExUnit.Case doctest Spark doctest Spark.Options + + describe inspect(&Spark.implements_behaviour?/2) do + test "returns true if the module implements the specified behavior" do + defmodule TestModule do + @callback foo :: any() + + @behaviour TestModule + + def foo, do: :ok + end + + refute Spark.implements_behaviour?(TestModule, AnyOtherModule) + assert Spark.implements_behaviour?(TestModule, TestModule) + end + end end