1Code.require_file "../test_helper.exs", __DIR__ 2Code.require_file "../../lib/api/comp.exs", __DIR__ 3 4defmodule Alchemist.API.CompTest do 5 6 use ExUnit.Case, async: true 7 8 alias Alchemist.API.Comp 9 10 test "COMP request with empty hint" do 11 assert Comp.process([nil, Elixir, [], [] ]) =~ """ 12 import/2 13 quote/2 14 require/2 15 END-OF-COMP 16 """ 17 end 18 19 test "COMP request without empty hint" do 20 assert Comp.process(['is_b', Elixir, [], []]) =~ """ 21 is_b 22 is_binary/1 23 is_bitstring/1 24 is_boolean/1 25 END-OF-COMP 26 """ 27 end 28 29 test "COMP request with an alias" do 30 assert Comp.process(['MyList.flat', Elixir, [], [{MyList, List}]]) =~ """ 31 MyList.flatten 32 flatten/1 33 flatten/2 34 END-OF-COMP 35 """ 36 end 37 38 test "COMP request with a module hint" do 39 assert Comp.process(['Str', Elixir, [], []]) =~ """ 40 Str 41 Stream 42 String 43 StringIO 44 END-OF-COMP 45 """ 46 end 47 48 test "return redundant candidates with COMP" do 49 assert Comp.process(['Enu', Elixir, [], []]) =~ """ 50 Enum 51 Enum 52 Enumerable 53 END-OF-COMP 54 """ 55 end 56 57 test "COMP request with no match" do 58 assert Comp.process(['Fooo', Elixir, [], []]) == "END-OF-COMP\n" 59 end 60 61end 62