igniter/test/mix/task_test.exs

46 lines
1 KiB
Elixir
Raw Normal View History

defmodule Igniter.Mix.TaskTest do
use ExUnit.Case
defmodule ExampleTask do
use Igniter.Mix.Task
def info(_argv, _parent) do
%Igniter.Mix.Task.Info{
schema: [
option: :string
],
positional: [
:a,
b: [
optional: true,
rest: true
]
]
}
end
def igniter(igniter, argv) do
options = options!(argv)
{args, _argv} = positional_args!(argv)
send(self(), {:args, args})
send(self(), {:options, options})
igniter
end
end
test "it parses options" do
ExampleTask.igniter(Igniter.new(), ["foo", "--option", "foo"])
assert_received {:options, options}
assert options[:option] == "foo"
assert_received {:args, %{a: "foo"}}
end
test "it parses rest options" do
ExampleTask.igniter(Igniter.new(), ["foo", "--option", "foo"])
assert_received {:options, options}
assert options[:option] == "foo"
assert_received {:args, %{a: "foo"}}
end
end