Skip to content

Commit 38cd520

Browse files
committed
fix tests on OTP 27
1 parent 5d48221 commit 38cd520

File tree

9 files changed

+127
-35
lines changed

9 files changed

+127
-35
lines changed

apps/elixir_ls_utils/test/complete_test.exs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2019,7 +2019,8 @@ defmodule ElixirLS.Utils.CompletionEngineTest do
20192019
type: :function,
20202020
args: "timerRef",
20212021
origin: ":erlang",
2022-
summary: summary1
2022+
summary: summary1,
2023+
metadata: meta1
20232024
},
20242025
%{
20252026
arity: 2,
@@ -2033,8 +2034,14 @@ defmodule ElixirLS.Utils.CompletionEngineTest do
20332034
] = expand(~c":erlang.cancel_time")
20342035

20352036
if System.otp_release() |> String.to_integer() >= 23 do
2036-
assert "Cancels a timer\\." <> _ = summary1
20372037
assert "Cancels a timer that has been created by" <> _ = summary2
2038+
2039+
if System.otp_release() |> String.to_integer() >= 27 do
2040+
assert "" == summary1
2041+
assert %{group: :time, equiv: "erlang:cancel_timer(TimerRef, [])", app: :erts} == meta1
2042+
else
2043+
assert "Cancels a timer\\." <> _ = summary1
2044+
end
20382045
end
20392046
end
20402047

apps/language_server/lib/language_server/location.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ defmodule ElixirLS.LanguageServer.Location do
149149
|> Atom.to_string()
150150
|> Regex.escape()
151151

152-
case find_line_by_regex(file, ~r/^#{escaped}\b/u) do
152+
case find_line_by_regex(file, ~r/^#{escaped}\b\(/u) do
153153
nil -> nil
154154
position -> {position, :function}
155155
end

apps/language_server/lib/language_server/markdown_utils.ex

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,14 @@ defmodule ElixirLS.LanguageServer.MarkdownUtils do
7474
defp get_metadata_entry_md({:types, _text}), do: nil
7575

7676
# erlang :equiv
77+
# OTP < 27
7778
defp get_metadata_entry_md({:equiv, {:function, name, arity}}) do
78-
"**Equivalent** #{name}/#{arity}"
79+
"**Equivalent to** #{name}/#{arity}"
80+
end
81+
82+
# OTP >= 27
83+
defp get_metadata_entry_md({:equiv, text}) when is_binary(text) do
84+
"**Equivalent to** #{text}"
7985
end
8086

8187
defp get_metadata_entry_md({:deprecated, text}) when is_binary(text) do

apps/language_server/test/providers/completion/suggestions_test.exs

Lines changed: 39 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -682,7 +682,11 @@ defmodule ElixirLS.LanguageServer.Providers.Completion.SuggestionTest do
682682
] = list
683683

684684
if System.otp_release() |> String.to_integer() >= 23 do
685-
assert "- OldVsn = Vsn" <> _ = summary
685+
if System.otp_release() |> String.to_integer() >= 27 do
686+
assert "This function is called" <> _ = summary
687+
else
688+
assert "- OldVsn = Vsn" <> _ = summary
689+
end
686690
end
687691
end
688692

@@ -1256,11 +1260,17 @@ defmodule ElixirLS.LanguageServer.Providers.Completion.SuggestionTest do
12561260
name: "init",
12571261
origin: "MyLocalModule",
12581262
spec: "@callback init(args :: term()) ::" <> _,
1259-
summary: "- Args = term" <> _,
1263+
summary: documentation,
12601264
type: :function,
12611265
visibility: :public
12621266
}
12631267
] = list
1268+
1269+
if System.otp_release() |> String.to_integer() >= 27 do
1270+
assert "Whenever" <> _ = documentation
1271+
else
1272+
assert "- Args = " <> _ = documentation
1273+
end
12641274
end
12651275
end
12661276

@@ -1370,11 +1380,17 @@ defmodule ElixirLS.LanguageServer.Providers.Completion.SuggestionTest do
13701380

13711381
if System.otp_release() |> String.to_integer() >= 23 do
13721382
assert %{
1373-
summary: "- InitArgs = Args" <> _,
1383+
summary: documentation,
13741384
metadata: %{implementing: :gen_event},
13751385
spec: "@callback init(initArgs :: term()) ::" <> _,
13761386
args_list: ["arg"]
13771387
} = init_res
1388+
1389+
if System.otp_release() |> String.to_integer() >= 27 do
1390+
assert "Whenever a new event" <> _ = documentation
1391+
else
1392+
assert "- InitArgs = Args" <> _ = documentation
1393+
end
13781394
end
13791395
end
13801396

@@ -1455,11 +1471,17 @@ defmodule ElixirLS.LanguageServer.Providers.Completion.SuggestionTest do
14551471
origin: "ElixirSenseExample.ExampleBehaviourWithDocCallbackErlang",
14561472
snippet: nil,
14571473
spec: "@callback init(args :: term()) :: init_result(state())",
1458-
summary: "- Args = term" <> _,
1474+
summary: documentation,
14591475
type: :function,
14601476
visibility: :public
14611477
}
14621478
] = list
1479+
1480+
if System.otp_release() |> String.to_integer() >= 27 do
1481+
assert "Whenever" <> _ = documentation
1482+
else
1483+
assert "- Args = " <> _ = documentation
1484+
end
14631485
end
14641486
end
14651487

@@ -1484,11 +1506,17 @@ defmodule ElixirLS.LanguageServer.Providers.Completion.SuggestionTest do
14841506
origin: ":file_server",
14851507
snippet: nil,
14861508
spec: "@callback init(args :: term()) ::" <> _,
1487-
summary: "- Args = term" <> _,
1509+
summary: documentation,
14881510
type: :function,
14891511
visibility: :public
14901512
}
14911513
] = list
1514+
1515+
if System.otp_release() |> String.to_integer() >= 27 do
1516+
assert "Whenever" <> _ = documentation
1517+
else
1518+
assert "- Args = " <> _ = documentation
1519+
end
14921520
end
14931521
end
14941522

@@ -4212,12 +4240,16 @@ defmodule ElixirLS.LanguageServer.Providers.Completion.SuggestionTest do
42124240
] = suggestions
42134241

42144242
if System.otp_release() |> String.to_integer() >= 23 do
4215-
assert summary =~ "Supported time unit representations:"
4243+
if System.otp_release() |> String.to_integer() >= 27 do
4244+
assert "The time unit used" <> _ = summary
4245+
else
4246+
assert "Supported time unit representations:" <> _ = summary
4247+
end
42164248
end
42174249
end
42184250

42194251
test "no erlang private types" do
4220-
buffer = "defmodule My, do: @type my_type :: :erlang.cpu_topo"
4252+
buffer = "defmodule My, do: @type my_type :: :dialyzer_plt.dialyzer_p"
42214253

42224254
suggestions = suggestions_by_type(:type_spec, buffer)
42234255

apps/language_server/test/providers/hover/docs_test.exs

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ defmodule ElixirLS.LanguageServer.Providers.Hover.DocsTest do
184184
By convention,\
185185
"""
186186

187-
assert %{name: "erlang", otp_doc_vsn: {1, 0, 0}} = doc.metadata
187+
assert %{app: :erts, otp_doc_vsn: {1, 0, 0}} = doc.metadata
188188
end
189189
end
190190

@@ -724,8 +724,12 @@ defmodule ElixirLS.LanguageServer.Providers.Hover.DocsTest do
724724
} = doc
725725

726726
if System.otp_release() |> String.to_integer() >= 23 do
727-
assert doc.docs =~
728-
"this function is called by"
727+
if System.otp_release() |> String.to_integer() >= 27 do
728+
assert "Whenever" <> _ = doc.docs
729+
else
730+
assert doc.docs =~
731+
"this function is called by"
732+
end
729733

730734
assert %{since: "OTP 19.0", implementing: :gen_statem} = doc.metadata
731735
end
@@ -933,18 +937,22 @@ defmodule ElixirLS.LanguageServer.Providers.Hover.DocsTest do
933937
} = Docs.docs(buffer, 3, 12)
934938

935939
assert %{
936-
args: ["deepList"],
940+
args: params,
937941
function: :flatten,
938942
module: :lists,
939943
kind: :function
940944
} = doc
941945

942946
if System.otp_release() |> String.to_integer() >= 23 do
943-
assert doc.docs =~ """
944-
Returns a flattened version of `DeepList`\\.
945-
"""
947+
if System.otp_release() |> String.to_integer() >= 27 do
948+
assert params == ["DeepList"]
949+
else
950+
assert params == ["deepList"]
951+
end
952+
953+
assert doc.docs =~ "Returns a flattened version of `DeepList`"
946954

947-
assert %{signature: _} = doc.metadata
955+
assert %{app: :stdlib} = doc.metadata
948956
end
949957
end
950958

@@ -1628,7 +1636,7 @@ defmodule ElixirLS.LanguageServer.Providers.Hover.DocsTest do
16281636
Supported time unit representations:
16291637
"""
16301638

1631-
assert %{signature: _} = doc.metadata
1639+
assert %{app: :erts} = doc.metadata
16321640
end
16331641
end
16341642

apps/language_server/test/providers/hover_test.exs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ defmodule ElixirLS.LanguageServer.Providers.HoverTest do
139139
assert {:ok, %{"contents" => %{kind: "markdown", value: v}}} =
140140
Hover.hover(parser_context, line, char)
141141

142-
assert String.starts_with?(v, "```elixir\n:timer.sleep(time)\n```\n\n*function*")
142+
assert String.starts_with?(v, "```elixir\n:timer.sleep(")
143143
# TODO hexdocs and standard lib docs
144144
assert not String.contains?(
145145
v,

apps/language_server/test/providers/signature_help/signature_test.exs

Lines changed: 51 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,11 @@ defmodule ElixirLS.LanguageServer.Providers.SignatureHelp.SignatureTest do
244244
} = Signature.signature(code, 2, 32)
245245

246246
if System.otp_release() |> String.to_integer() >= 23 do
247-
assert summary =~ "Supported time unit representations:"
247+
if System.otp_release() |> String.to_integer() >= 27 do
248+
assert "The time unit" <> _ = summary
249+
else
250+
assert "Supported time unit representations" <> _ = summary
251+
end
248252
end
249253
end
250254

@@ -328,24 +332,30 @@ defmodule ElixirLS.LanguageServer.Providers.SignatureHelp.SignatureTest do
328332
%{
329333
documentation: summary1,
330334
name: "flatten",
331-
params: ["deepList"],
335+
params: [_],
332336
spec:
333337
"@spec flatten(deepList) :: list when deepList: [term() | deepList], list: [term()]"
334338
},
335339
%{
336340
documentation: summary2,
337341
name: "flatten",
338-
params: ["deepList", "tail"],
342+
params: params,
339343
spec:
340344
"@spec flatten(deepList, tail) :: list when deepList: [term() | deepList], tail: [term()], list: [term()]"
341345
}
342346
]
343347
} = Signature.signature(code, 2, 24)
344348

345349
if System.otp_release() |> String.to_integer() >= 23 do
346-
assert "Returns a flattened version of `DeepList`\\." <> _ = summary1
350+
if System.otp_release() |> String.to_integer() >= 27 do
351+
assert params == ["DeepList", "Tail"]
352+
else
353+
assert params == ["deepList", "tail"]
354+
end
355+
356+
assert "Returns a flattened version of `DeepList`" <> _ = summary1
347357

348-
assert "Returns a flattened version of `DeepList` with tail `Tail` appended\\." <> _ =
358+
assert "Returns a flattened version of `DeepList` with tail `Tail` appended" <> _ =
349359
summary2
350360
end
351361
end
@@ -1013,7 +1023,11 @@ defmodule ElixirLS.LanguageServer.Providers.SignatureHelp.SignatureTest do
10131023
} = Signature.signature(code, 5, 10)
10141024

10151025
if System.otp_release() |> String.to_integer() >= 23 do
1016-
assert "- Args = term\\(\\)\n- Result" <> _ = summary
1026+
if System.otp_release() |> String.to_integer() >= 27 do
1027+
assert "Whenever" <> _ = summary
1028+
else
1029+
assert "- Args = " <> _ = summary
1030+
end
10171031
end
10181032
end
10191033

@@ -1048,13 +1062,19 @@ defmodule ElixirLS.LanguageServer.Providers.SignatureHelp.SignatureTest do
10481062
active_param: 0,
10491063
signatures: [
10501064
%{
1051-
documentation: "- Args = " <> _,
1065+
documentation: documentation,
10521066
name: "init",
10531067
params: ["_"],
10541068
spec: "@callback init(args :: term()) :: init_result(state())"
10551069
}
10561070
]
10571071
} = res
1072+
1073+
if System.otp_release() |> String.to_integer() >= 27 do
1074+
assert "Whenever" <> _ = documentation
1075+
else
1076+
assert "- Args = " <> _ = documentation
1077+
end
10581078
end
10591079
end
10601080

@@ -1070,13 +1090,19 @@ defmodule ElixirLS.LanguageServer.Providers.SignatureHelp.SignatureTest do
10701090
active_param: 0,
10711091
signatures: [
10721092
%{
1073-
documentation: "- Args = " <> _,
1093+
documentation: summary,
10741094
name: "init",
10751095
params: ["args"],
10761096
spec: "@callback init(args :: term()) ::" <> _
10771097
}
10781098
]
10791099
} = res
1100+
1101+
if System.otp_release() |> String.to_integer() >= 27 do
1102+
assert "Whenever a" <> _ = summary
1103+
else
1104+
assert "- Args = " <> _ = summary
1105+
end
10801106
end
10811107
end
10821108

@@ -1251,13 +1277,19 @@ defmodule ElixirLS.LanguageServer.Providers.SignatureHelp.SignatureTest do
12511277
active_param: 0,
12521278
signatures: [
12531279
%{
1254-
documentation: "- Args = term" <> _,
1280+
documentation: summary,
12551281
name: "init",
12561282
params: ["list"],
12571283
spec: "@callback init(args :: term()) :: init_result(state())"
12581284
}
12591285
]
12601286
} = res
1287+
1288+
if System.otp_release() |> String.to_integer() >= 27 do
1289+
assert "Whenever a" <> _ = summary
1290+
else
1291+
assert "- Args = term" <> _ = summary
1292+
end
12611293
end
12621294
end
12631295

@@ -1577,21 +1609,28 @@ defmodule ElixirLS.LanguageServer.Providers.SignatureHelp.SignatureTest do
15771609
%{
15781610
documentation: summary1,
15791611
name: "cancel_timer",
1580-
params: ["timerRef"],
1612+
params: [_],
15811613
spec: "@spec cancel_timer(timerRef) :: result" <> _
15821614
},
15831615
%{
15841616
documentation: summary2,
15851617
name: "cancel_timer",
1586-
params: ["timerRef", "options"],
1618+
params: params,
15871619
spec: "@spec cancel_timer(timerRef, options) :: result" <> _
15881620
}
15891621
]
15901622
} = Signature.signature(buffer, 4, 24)
15911623

15921624
if System.otp_release() |> String.to_integer() >= 23 do
1593-
assert "Cancels a timer\\." <> _ = summary1
15941625
assert "Cancels a timer that has been created by" <> _ = summary2
1626+
1627+
if System.otp_release() |> String.to_integer() >= 27 do
1628+
assert "" == summary1
1629+
assert params == ["TimerRef", "Options"]
1630+
else
1631+
assert "Cancels a timer\\." <> _ = summary1
1632+
assert params == ["timerRef", "options"]
1633+
end
15951634
end
15961635
end
15971636
end

dep_versions.exs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[
2-
elixir_sense: "a41777a8d47b64b5886f1c2e7b09e38c462ad3ff",
2+
elixir_sense: "314e77f7914aeb38e2d8d150582174c579795b9f",
33
dialyxir_vendored: "d50dcd7101c6ebd37b57b7ee4a7888d8cb634782",
44
jason_v: "c81537e2a5e1acacb915cf339fe400357e3c2aaa",
55
erl2ex_vendored: "073ac6b9a44282e718b6050c7b27cedf9217a12a",

0 commit comments

Comments
 (0)