43 lines
1.1 KiB
Elixir
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
|