Skip to content

Commit 5d48221

Browse files
committed
add tests
1 parent 3dc0dce commit 5d48221

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed

apps/language_server/test/providers/definition/locator_test.exs

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,26 @@ defmodule ElixirLS.LanguageServer.Providers.Definition.LocatorTest do
105105
assert read_line(file, {line, column}) =~ "function_arity_zero"
106106
end
107107

108+
test "find definition of functions from current buffer imports" do
109+
buffer = """
110+
defmodule MyModuleExports do
111+
def exported(a), do: a
112+
end
113+
114+
defmodule MyModule do
115+
import MyModuleExports
116+
exported(1)
117+
#^
118+
end
119+
"""
120+
121+
%Location{type: :function, file: file, line: line, column: column} =
122+
Locator.definition(buffer, 7, 4)
123+
124+
assert file == nil
125+
assert {line, column} == {2, 3}
126+
end
127+
108128
test "find definition of functions from aliased modules" do
109129
buffer = """
110130
defmodule MyModule do
@@ -121,6 +141,26 @@ defmodule ElixirLS.LanguageServer.Providers.Definition.LocatorTest do
121141
assert read_line(file, {line, column}) =~ "function_arity_one"
122142
end
123143

144+
test "find definition of functions from current buffer aliases" do
145+
buffer = """
146+
defmodule MyModuleExports do
147+
def exported(a), do: a
148+
end
149+
150+
defmodule MyModule do
151+
alias MyModuleExports, as: Foo
152+
Foo.exported(1)
153+
# ^
154+
end
155+
"""
156+
157+
%Location{type: :function, file: file, line: line, column: column} =
158+
Locator.definition(buffer, 7, 8)
159+
160+
assert file == nil
161+
assert {line, column} == {2, 3}
162+
end
163+
124164
test "find definition of macros from required modules" do
125165
buffer = """
126166
defmodule MyModule do
@@ -137,6 +177,28 @@ defmodule ElixirLS.LanguageServer.Providers.Definition.LocatorTest do
137177
assert read_line(file, {line, column}) =~ "some"
138178
end
139179

180+
test "find definition of macros from current buffer requires" do
181+
buffer = """
182+
defmodule MyModuleExports do
183+
defmacro exported(a) do
184+
quote do: unquote(a)
185+
end
186+
end
187+
188+
defmodule MyModule do
189+
require MyModuleExports, as: Foo
190+
Foo.exported(1)
191+
# ^
192+
end
193+
"""
194+
195+
%Location{type: :macro, file: file, line: line, column: column} =
196+
Locator.definition(buffer, 9, 8)
197+
198+
assert file == nil
199+
assert {line, column} == {2, 3}
200+
end
201+
140202
test "find definition of functions piped from aliased modules" do
141203
buffer = """
142204
defmodule MyModule do

0 commit comments

Comments
 (0)