Skip to content

Commit 6d3d667

Browse files
committed
fix tests, improve coverage
1 parent 4b92cf9 commit 6d3d667

File tree

1 file changed

+117
-5
lines changed

1 file changed

+117
-5
lines changed

apps/elixir_ls_debugger/test/debugger_test.exs

Lines changed: 117 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2989,7 +2989,7 @@ defmodule ElixirLS.Debugger.ServerTest do
29892989
@tag :capture_log
29902990
test "evaluate expression with exception result", %{server: server} do
29912991
in_fixture(__DIR__, "mix_project", fn ->
2992-
Server.receive_packet(server, initialize_req(1, %{}))
2992+
Server.receive_packet(server, initialize_req(1, %{"supportsProgressReporting" => true}))
29932993
assert_receive(response(_, 1, "initialize", _))
29942994

29952995
Server.receive_packet(
@@ -3026,7 +3026,7 @@ defmodule ElixirLS.Debugger.ServerTest do
30263026

30273027
test "evaluate expression which calls exit process", %{server: server} do
30283028
in_fixture(__DIR__, "mix_project", fn ->
3029-
Server.receive_packet(server, initialize_req(1, %{}))
3029+
Server.receive_packet(server, initialize_req(1, %{"supportsProgressReporting" => true}))
30303030
assert_receive(response(_, 1, "initialize", _))
30313031

30323032
Server.receive_packet(
@@ -3066,7 +3066,7 @@ defmodule ElixirLS.Debugger.ServerTest do
30663066

30673067
test "evaluate expression with attempt to exit debugger process", %{server: server} do
30683068
in_fixture(__DIR__, "mix_project", fn ->
3069-
Server.receive_packet(server, initialize_req(1, %{}))
3069+
Server.receive_packet(server, initialize_req(1, %{"supportsProgressReporting" => true}))
30703070
assert_receive(response(_, 1, "initialize", _))
30713071

30723072
Server.receive_packet(
@@ -3104,11 +3104,53 @@ defmodule ElixirLS.Debugger.ServerTest do
31043104
end)
31053105
end
31063106

3107-
test "evaluate expression with attempt to throw debugger process", %{server: server} do
3107+
test "evaluate expression with attempt to exit debugger process - progress not supported", %{
3108+
server: server
3109+
} do
31083110
in_fixture(__DIR__, "mix_project", fn ->
31093111
Server.receive_packet(server, initialize_req(1, %{}))
31103112
assert_receive(response(_, 1, "initialize", _))
31113113

3114+
Server.receive_packet(
3115+
server,
3116+
gen_watch_expression_packet(1, "Process.exit(self(), :normal)")
3117+
)
3118+
3119+
refute_receive(
3120+
event(_, "progressStart", %{
3121+
"cancellable" => true,
3122+
"message" => "Process.exit(self(), :normal)",
3123+
"progressId" => 1,
3124+
"requestId" => 1,
3125+
"title" => "Evaluating expression"
3126+
})
3127+
)
3128+
3129+
# evaluator process exits so we should not get a response
3130+
refute_receive(%{"body" => %{"result" => _result}}, 1000)
3131+
3132+
assert_receive(
3133+
error_response(
3134+
_,
3135+
1,
3136+
"evaluate",
3137+
"internalServerError",
3138+
"Request handler exited with reason normal",
3139+
%{}
3140+
)
3141+
)
3142+
3143+
refute_receive(event(_, "progressEnd", %{"progressId" => 1}))
3144+
3145+
assert Process.alive?(server)
3146+
end)
3147+
end
3148+
3149+
test "evaluate expression with attempt to throw debugger process", %{server: server} do
3150+
in_fixture(__DIR__, "mix_project", fn ->
3151+
Server.receive_packet(server, initialize_req(1, %{"supportsProgressReporting" => true}))
3152+
assert_receive(response(_, 1, "initialize", _))
3153+
31123154
Server.receive_packet(
31133155
server,
31143156
gen_watch_expression_packet(1, "throw(:goodmorning_bug)")
@@ -3143,7 +3185,7 @@ defmodule ElixirLS.Debugger.ServerTest do
31433185

31443186
test "evaluate expression which has long execution", %{server: server} do
31453187
in_fixture(__DIR__, "mix_project", fn ->
3146-
Server.receive_packet(server, initialize_req(1, %{}))
3188+
Server.receive_packet(server, initialize_req(1, %{"supportsProgressReporting" => true}))
31473189
assert_receive(response(_, 1, "initialize", _))
31483190

31493191
Server.receive_packet(
@@ -3163,6 +3205,16 @@ defmodule ElixirLS.Debugger.ServerTest do
31633205
gen_watch_expression_packet(1, ":timer.sleep(10_000)")
31643206
)
31653207

3208+
assert_receive(
3209+
event(_, "progressStart", %{
3210+
"cancellable" => true,
3211+
"message" => ":timer.sleep(10_000)",
3212+
"progressId" => 1,
3213+
"requestId" => 1,
3214+
"title" => "Evaluating expression"
3215+
})
3216+
)
3217+
31663218
Server.receive_packet(
31673219
server,
31683220
cancel_req(2, %{"progressId" => 1})
@@ -3181,6 +3233,66 @@ defmodule ElixirLS.Debugger.ServerTest do
31813233
)
31823234
)
31833235

3236+
assert_receive(event(_, "progressEnd", %{"progressId" => 1}))
3237+
3238+
assert Process.alive?(server)
3239+
end)
3240+
end
3241+
3242+
test "evaluate expression which has long execution - progress not supported", %{
3243+
server: server
3244+
} do
3245+
in_fixture(__DIR__, "mix_project", fn ->
3246+
Server.receive_packet(server, initialize_req(1, %{}))
3247+
assert_receive(response(_, 1, "initialize", _))
3248+
3249+
Server.receive_packet(
3250+
server,
3251+
launch_req(2, %{
3252+
"request" => "launch",
3253+
"type" => "mix_task",
3254+
"task" => "test",
3255+
"projectDir" => File.cwd!()
3256+
})
3257+
)
3258+
3259+
assert_receive(response(_, 2, "launch", %{}), 5000)
3260+
3261+
Server.receive_packet(
3262+
server,
3263+
gen_watch_expression_packet(1, ":timer.sleep(10_000)")
3264+
)
3265+
3266+
refute_receive(
3267+
event(_, "progressStart", %{
3268+
"cancellable" => true,
3269+
"message" => ":timer.sleep(10_000)",
3270+
"progressId" => 1,
3271+
"requestId" => 1,
3272+
"title" => "Evaluating expression"
3273+
})
3274+
)
3275+
3276+
Server.receive_packet(
3277+
server,
3278+
cancel_req(2, %{"requestId" => 1})
3279+
)
3280+
3281+
assert_receive(response(_, 2, "cancel", _))
3282+
3283+
assert_receive(
3284+
error_response(
3285+
_,
3286+
1,
3287+
"evaluate",
3288+
"cancelled",
3289+
"cancelled",
3290+
%{}
3291+
)
3292+
)
3293+
3294+
refute_receive(event(_, "progressEnd", %{"progressId" => 1}))
3295+
31843296
assert Process.alive?(server)
31853297
end)
31863298
end

0 commit comments

Comments
 (0)