@@ -38,177 +38,173 @@ defmodule ElixirLS.Experimental.Provider.Handlers.GotoDefinitionTest do
3838 Handlers.GotoDefinition . handle ( request , Env . new ( ) )
3939 end
4040
41- defp get_referenced_file_uri do
42- "references_referenced.ex"
43- |> FixtureHelpers . get_path ( )
44- |> Conversions . ensure_uri ( )
41+ def with_referenced_file ( _ ) do
42+ path = FixtureHelpers . get_path ( "references_referenced.ex" )
43+ uri = Conversions . ensure_uri ( path )
44+ { :ok , file_uri: uri , file_path: path }
4545 end
4646
47- test "find definition remote function call" do
48- referenced_uri = get_referenced_file_uri ( )
49- file_path = FixtureHelpers . get_path ( "references_remote.ex" )
50- { line , char } = { 4 , 28 }
47+ describe "when a file contains references" do
48+ setup [ :with_referenced_file ]
5149
52- { :ok , request } = request ( file_path , line , char )
50+ test "find definition remote function call" , % { file_uri: uri } do
51+ file_path = FixtureHelpers . get_path ( "references_remote.ex" )
52+ { line , char } = { 4 , 28 }
5353
54- annotate_assert ( file_path , line , char , """
55- ReferencesReferenced.referenced_fun()
56- ^
57- """ )
54+ { :ok , request } = request ( file_path , line , char )
5855
59- { :reply , % Responses.GotoDefinition { result: definition } } = handle ( request )
56+ annotate_assert ( file_path , line , char , """
57+ ReferencesReferenced.referenced_fun()
58+ ^
59+ """ )
6060
61- assert definition . uri == referenced_uri
62- assert definition . range . start . line == 1
63- assert definition . range . start . character == 6
64- assert definition . range . end . line == 1
65- assert definition . range . end . character == 6
66- end
61+ { :reply , % Responses.GotoDefinition { result: definition } } = handle ( request )
62+
63+ assert definition . uri == uri
64+ assert definition . range . start . line == 1
65+ assert definition . range . start . character == 6
66+ assert definition . range . end . line == 1
67+ assert definition . range . end . character == 6
68+ end
6769
68- test "find definition remote macro call" do
69- referenced_uri = get_referenced_file_uri ( )
70- file_path = FixtureHelpers . get_path ( "references_remote.ex" )
71- { line , char } = { 8 , 28 }
70+ test "find definition remote macro call" , % { file_uri: uri } do
71+ file_path = FixtureHelpers . get_path ( "references_remote.ex" )
72+ { line , char } = { 8 , 28 }
7273
73- { :ok , request } = request ( file_path , line , char )
74+ { :ok , request } = request ( file_path , line , char )
7475
75- annotate_assert ( file_path , line , char , """
76- ReferencesReferenced.referenced_macro a do
77- ^
78- """ )
76+ annotate_assert ( file_path , line , char , """
77+ ReferencesReferenced.referenced_macro a do
78+ ^
79+ """ )
7980
80- { :reply , % Responses.GotoDefinition { result: definition } } = handle ( request )
81+ { :reply , % Responses.GotoDefinition { result: definition } } = handle ( request )
8182
82- assert definition . uri == referenced_uri
83- assert definition . range . start . line == 8
84- assert definition . range . start . character == 11
85- assert definition . range . end . line == 8
86- assert definition . range . end . character == 11
87- end
83+ assert definition . uri == uri
84+ assert definition . range . start . line == 8
85+ assert definition . range . start . character == 11
86+ assert definition . range . end . line == 8
87+ assert definition . range . end . character == 11
88+ end
8889
89- test "find definition imported function call" do
90- referenced_uri = get_referenced_file_uri ( )
91- file_path = FixtureHelpers . get_path ( "references_imported.ex" )
92- { line , char } = { 4 , 5 }
90+ test "find definition imported function call" , % { file_uri: uri } do
91+ file_path = FixtureHelpers . get_path ( "references_imported.ex" )
92+ { line , char } = { 4 , 5 }
9393
94- { :ok , request } = request ( file_path , line , char )
94+ { :ok , request } = request ( file_path , line , char )
9595
96- annotate_assert ( file_path , line , char , """
97- referenced_fun()
98- ^
99- """ )
96+ annotate_assert ( file_path , line , char , """
97+ referenced_fun()
98+ ^
99+ """ )
100100
101- { :reply , % Responses.GotoDefinition { result: definition } } = handle ( request )
101+ { :reply , % Responses.GotoDefinition { result: definition } } = handle ( request )
102102
103- assert definition . uri == referenced_uri
104- assert definition . range . start . line == 1
105- assert definition . range . start . character == 6
106- assert definition . range . end . line == 1
107- assert definition . range . end . character == 6
108- end
103+ assert definition . uri == uri
104+ assert definition . range . start . line == 1
105+ assert definition . range . start . character == 6
106+ assert definition . range . end . line == 1
107+ assert definition . range . end . character == 6
108+ end
109109
110- test "find definition imported macro call" do
111- referenced_uri = get_referenced_file_uri ( )
112- file_path = FixtureHelpers . get_path ( "references_imported.ex" )
113- { line , char } = { 8 , 5 }
110+ test "find definition imported macro call" , % { file_uri: uri } do
111+ file_path = FixtureHelpers . get_path ( "references_imported.ex" )
112+ { line , char } = { 8 , 5 }
114113
115- { :ok , request } = request ( file_path , line , char )
114+ { :ok , request } = request ( file_path , line , char )
116115
117- annotate_assert ( file_path , line , char , """
118- referenced_macro a do
119- ^
120- """ )
116+ annotate_assert ( file_path , line , char , """
117+ referenced_macro a do
118+ ^
119+ """ )
121120
122- { :reply , % Responses.GotoDefinition { result: definition } } = handle ( request )
121+ { :reply , % Responses.GotoDefinition { result: definition } } = handle ( request )
123122
124- assert definition . uri == referenced_uri
125- assert definition . range . start . line == 8
126- assert definition . range . start . character == 11
127- assert definition . range . end . line == 8
128- assert definition . range . end . character == 11
129- end
123+ assert definition . uri == uri
124+ assert definition . range . start . line == 8
125+ assert definition . range . start . character == 11
126+ assert definition . range . end . line == 8
127+ assert definition . range . end . character == 11
128+ end
130129
131- test "find definition local function call" do
132- referenced_uri = get_referenced_file_uri ( )
133- file_path = FixtureHelpers . get_path ( "references_referenced.ex" )
134- { line , char } = { 15 , 5 }
130+ test "find definition local function call" , % { file_uri: uri } do
131+ file_path = FixtureHelpers . get_path ( "references_referenced.ex" )
132+ { line , char } = { 15 , 5 }
135133
136- { :ok , request } = request ( file_path , line , char )
134+ { :ok , request } = request ( file_path , line , char )
137135
138- annotate_assert ( file_path , line , char , """
139- referenced_fun()
140- ^
141- """ )
136+ annotate_assert ( file_path , line , char , """
137+ referenced_fun()
138+ ^
139+ """ )
142140
143- { :reply , % Responses.GotoDefinition { result: definition } } = handle ( request )
141+ { :reply , % Responses.GotoDefinition { result: definition } } = handle ( request )
144142
145- assert definition . uri == referenced_uri
146- assert definition . range . start . line == 1
147- assert definition . range . start . character == 6
148- assert definition . range . end . line == 1
149- assert definition . range . end . character == 6
150- end
143+ assert definition . uri == uri
144+ assert definition . range . start . line == 1
145+ assert definition . range . start . character == 6
146+ assert definition . range . end . line == 1
147+ assert definition . range . end . character == 6
148+ end
151149
152- test "find definition local macro call" do
153- referenced_uri = get_referenced_file_uri ( )
154- file_path = FixtureHelpers . get_path ( "references_referenced.ex" )
155- { line , char } = { 19 , 5 }
150+ test "find definition local macro call" , % { file_uri: uri } do
151+ file_path = FixtureHelpers . get_path ( "references_referenced.ex" )
152+ { line , char } = { 19 , 5 }
156153
157- { :ok , request } = request ( file_path , line , char )
154+ { :ok , request } = request ( file_path , line , char )
158155
159- annotate_assert ( file_path , line , char , """
160- referenced_macro a do
161- ^
162- """ )
156+ annotate_assert ( file_path , line , char , """
157+ referenced_macro a do
158+ ^
159+ """ )
163160
164- { :reply , % Responses.GotoDefinition { result: definition } } = handle ( request )
161+ { :reply , % Responses.GotoDefinition { result: definition } } = handle ( request )
165162
166- assert definition . uri == referenced_uri
167- assert definition . range . start . line == 8
168- assert definition . range . start . character == 11
169- assert definition . range . end . line == 8
170- assert definition . range . end . character == 11
171- end
163+ assert definition . uri == uri
164+ assert definition . range . start . line == 8
165+ assert definition . range . start . character == 11
166+ assert definition . range . end . line == 8
167+ assert definition . range . end . character == 11
168+ end
172169
173- test "find definition variable" do
174- referenced_uri = get_referenced_file_uri ( )
175- file_path = FixtureHelpers . get_path ( "references_referenced.ex" )
176- { line , char } = { 4 , 13 }
170+ test "find definition variable" , % { file_uri: uri } do
171+ file_path = FixtureHelpers . get_path ( "references_referenced.ex" )
172+ { line , char } = { 4 , 13 }
177173
178- { :ok , request } = request ( file_path , line , char )
174+ { :ok , request } = request ( file_path , line , char )
179175
180- annotate_assert ( file_path , line , char , """
181- IO.puts(referenced_variable + 1)
182- ^
183- """ )
176+ annotate_assert ( file_path , line , char , """
177+ IO.puts(referenced_variable + 1)
178+ ^
179+ """ )
184180
185- { :reply , % Responses.GotoDefinition { result: definition } } = handle ( request )
181+ { :reply , % Responses.GotoDefinition { result: definition } } = handle ( request )
186182
187- assert definition . uri == referenced_uri
188- assert definition . range . start . line == 2
189- assert definition . range . start . character == 4
190- assert definition . range . end . line == 2
191- assert definition . range . end . character == 4
192- end
183+ assert definition . uri == uri
184+ assert definition . range . start . line == 2
185+ assert definition . range . start . character == 4
186+ assert definition . range . end . line == 2
187+ assert definition . range . end . character == 4
188+ end
193189
194- test "find definition attribute" do
195- referenced_uri = get_referenced_file_uri ( )
196- file_path = FixtureHelpers . get_path ( "references_referenced.ex" )
197- { line , char } = { 27 , 5 }
190+ test "find definition attribute" , % { file_uri: uri } do
191+ file_path = FixtureHelpers . get_path ( "references_referenced.ex" )
192+ { line , char } = { 27 , 5 }
198193
199- { :ok , request } = request ( file_path , line , char )
194+ { :ok , request } = request ( file_path , line , char )
200195
201- annotate_assert ( file_path , line , char , """
202- @referenced_attribute
203- ^
204- """ )
196+ annotate_assert ( file_path , line , char , """
197+ @referenced_attribute
198+ ^
199+ """ )
205200
206- { :reply , % Responses.GotoDefinition { result: definition } } = handle ( request )
201+ { :reply , % Responses.GotoDefinition { result: definition } } = handle ( request )
207202
208- assert definition . uri == referenced_uri
209- assert definition . range . start . line == 24
210- assert definition . range . start . character == 2
211- assert definition . range . end . line == 24
212- assert definition . range . end . character == 2
203+ assert definition . uri == uri
204+ assert definition . range . start . line == 24
205+ assert definition . range . start . character == 2
206+ assert definition . range . end . line == 24
207+ assert definition . range . end . character == 2
208+ end
213209 end
214210end
0 commit comments