You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

73 lines
1.9 KiB

Code.require_file "../test_helper.exs", __DIR__
Code.require_file "../../lib/api/comp.exs", __DIR__
Code.require_file "../../lib/api/docl.exs", __DIR__
defmodule Alchemist.API.DoclTest do
use ExUnit.Case, async: true
import ExUnit.CaptureIO
alias Alchemist.API.Docl
test "DOCL request" do
assert capture_io(fn ->
Docl.process(['defmodule', [], []])
end) =~ """
Defines a module given by name with the given contents.
"""
end
test "DOCL request for List.flatten" do
assert capture_io(fn ->
Docl.process(["List.flatten", [], []])
end) =~ """
Flattens the given \e[36mlist\e[0m of nested lists.
\e[0m
\e[33mExamples\e[0m
\e[0m
\e[36m\e[1m┃ iex> List.flatten([1, [[2], 3]])
"""
end
test "DOCL request for MyCustomList.flatten with alias" do
assert capture_io(fn ->
Docl.process(["MyCustomList.flatten", [], [{MyCustomList, List}]])
end) =~ """
Flattens the given \e[36mlist\e[0m of nested lists.
\e[0m
\e[33mExamples\e[0m
\e[0m
\e[36m\e[1m┃ iex> List.flatten([1, [[2], 3]])
"""
end
test "DOCL request for search create_file with import" do
assert capture_io(fn ->
Docl.process(["create_file", [Mix.Generator], []])
end) =~ """
def create_file(path, contents, opts \\\\ []) \e[0m
\e[0m
Creates a file with the given contents. If the file already exists, asks for
user confirmation.
\e[0m
"""
end
test "DOCL request for defmacro" do
assert capture_io(fn ->
Docl.process(["defmacro", [], []])
end) =~ """
\e[7m\e[33m defmacro defmacro(call, expr \\\\ nil) \e[0m
"""
end
test "DOCL request for Path.basename/1" do
assert capture_io(fn ->
Docl.process(["Path.basename/1", [], []])
end) =~ """
Returns the last component of the path or the path itself if it does not
contain any directory separators.
"""
end
end