elixir-book/issues/test/cli_test.exs

43 lines
1.1 KiB
Elixir

defmodule CliTest do
use ExUnit.Case
doctest Issues
import Issues.CLI,
only: [
parse_args: 1,
sort_into_descending_order: 1,
last: 2
]
test ":help returned by option parsing the -h and --help options" do
assert parse_args(["-h", "anything"]) == :help
assert parse_args(["--help", "anything"]) == :help
end
test "three values returned if three given" do
assert parse_args(["user", "project", "99"]) == {"user", "project", 99}
end
test "two values and default count returned if two values given" do
assert parse_args(["user", "project"]) == {"user", "project", 4}
end
test "sort descending orders the correct way" do
result = sort_into_descending_order(fake_created_at_list(["c", "a", "b"]))
issues = for issue <- result, do: Map.get(issue, "created_at")
assert issues == ~w{ c b a }
end
defp fake_created_at_list(values) do
for value <- values, do: %{"created_at" => value, "other_data" => "xxx"}
end
test "fetch the last two elements of a list" do
list = [1,2,3,4,5]
count = 2
expected = [2, 1]
result = last(list, count)
assert expected == result
end
end