Skip to content

Commit 1de7025

Browse files
committed
Fix inclusion/exclusion validation
1 parent 997828f commit 1de7025

File tree

3 files changed

+16
-8
lines changed

3 files changed

+16
-8
lines changed

lib/jsonrpc2_plug/validator/exclusion.ex

+7-3
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,16 @@ defmodule JSONRPC2Plug.Validator.Exclusion do
77
def check(nil, _opts),
88
do: :ok
99
def check(value, [{:in, enum}]) do
10-
if Enumerable.impl_for(enum) && !Enum.member?(enum, value) do
11-
:ok
10+
if Enumerable.impl_for(enum) do
11+
if Enum.member?(enum, value) do
12+
error("is in the black list: %{list}", [list: Enum.join(enum, ", ")])
13+
else
14+
:ok
15+
end
1216
else
1317
error("is in the black list: %{list}", [list: enum])
1418
end
1519
end
1620
def check(_value, _opts),
17-
do: error("is in the black list: %{list}", [list: []])
21+
do: error("is in the black list: %{list}", [list: ""])
1822
end

lib/jsonrpc2_plug/validator/inclusion.ex

+7-3
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,16 @@ defmodule JSONRPC2Plug.Validator.Inclusion do
77
def check(nil, _opts),
88
do: :ok
99
def check(value, [{:in, enum}]) do
10-
if Enumerable.impl_for(enum) && Enum.member?(enum, value) do
11-
:ok
10+
if Enumerable.impl_for(enum) do
11+
if Enum.member?(enum, value) do
12+
:ok
13+
else
14+
error("is not in the inclusion list: %{list}", [list: Enum.join(enum, ", ")])
15+
end
1216
else
1317
error("is not in the inclusion list: %{list}", [list: enum])
1418
end
1519
end
1620
def check(_value, _opts),
17-
do: error("is not in the inclusion list: %{list}", [list: []])
21+
do: error("is not in the inclusion list: %{list}", [list: ""])
1822
end

test/jsonrpc2_plug/validator_test.exs

+2-2
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,15 @@ defmodule JSONRPC2Plug.ValidatorTest do
3232
end
3333

3434
test ".exclude" do
35-
assert {:error, "is in the black list: %{list}", [list: [1, 2, 3]]} = Validator.exclude([1, 2, 3]).(2)
35+
assert {:error, "is in the black list: %{list}", [list: "1, 2, 3"]} = Validator.exclude([1, 2, 3]).(2)
3636
assert {:error, "is in the black list: %{list}", [list: "123"]} = Validator.exclude("123").("4")
3737
assert {:error, "is in the black list: %{list}", [list: 12345]} = Validator.exclude(12345).(2)
3838
assert :ok = Validator.exclude([1, 2, 3]).(4)
3939
assert :ok = Validator.exclude([1, 2, 3]).(nil)
4040
end
4141

4242
test ".include" do
43-
assert {:error, "is not in the inclusion list: %{list}", [list: [1, 2, 3]]} = Validator.include([1, 2, 3]).(4)
43+
assert {:error, "is not in the inclusion list: %{list}", [list: "1, 2, 3"]} = Validator.include([1, 2, 3]).(4)
4444
assert {:error, "is not in the inclusion list: %{list}", [list: "123"]} = Validator.include("123").("3")
4545
assert {:error, "is not in the inclusion list: %{list}", [list: 12345]} = Validator.include(12345).(2)
4646
assert :ok = Validator.include([1, 2, 3]).(3)

0 commit comments

Comments
 (0)