@@ -29,64 +29,86 @@ defmodule ElixirLS.Debugger.ServerTest do
29
29
30
30
describe "initialize" do
31
31
test "succeeds" , % { server: server } do
32
- Server . receive_packet ( server , initialize_req ( 1 , % { "clientID" => "some_id" } ) )
33
- assert_receive ( response ( _ , 1 , "initialize" , % { "supportsConfigurationDoneRequest" => true } ) )
34
- assert :sys . get_state ( server ) . client_info == % { "clientID" => "some_id" }
32
+ in_fixture ( __DIR__ , "mix_project" , fn ->
33
+ Server . receive_packet ( server , initialize_req ( 1 , % { "clientID" => "some_id" } ) )
34
+
35
+ assert_receive (
36
+ response ( _ , 1 , "initialize" , % { "supportsConfigurationDoneRequest" => true } )
37
+ )
38
+
39
+ assert :sys . get_state ( server ) . client_info == % { "clientID" => "some_id" }
40
+ end )
35
41
end
36
42
37
43
test "fails when already initialized" , % { server: server } do
38
- Server . receive_packet ( server , initialize_req ( 1 , % { "clientID" => "some_id" } ) )
39
- assert_receive ( response ( _ , 1 , "initialize" , % { "supportsConfigurationDoneRequest" => true } ) )
40
- Server . receive_packet ( server , initialize_req ( 2 , % { "clientID" => "some_id" } ) )
44
+ in_fixture ( __DIR__ , "mix_project" , fn ->
45
+ Server . receive_packet ( server , initialize_req ( 1 , % { "clientID" => "some_id" } ) )
41
46
42
- assert_receive (
43
- error_response (
44
- _ ,
45
- 2 ,
46
- "initialize" ,
47
- "invalidRequest" ,
48
- "Debugger request {command} was not expected" ,
49
- % { "command" => "initialize" }
47
+ assert_receive (
48
+ response ( _ , 1 , "initialize" , % { "supportsConfigurationDoneRequest" => true } )
50
49
)
51
- )
50
+
51
+ Server . receive_packet ( server , initialize_req ( 2 , % { "clientID" => "some_id" } ) )
52
+
53
+ assert_receive (
54
+ error_response (
55
+ _ ,
56
+ 2 ,
57
+ "initialize" ,
58
+ "invalidRequest" ,
59
+ "Debugger request {command} was not expected" ,
60
+ % { "command" => "initialize" }
61
+ )
62
+ )
63
+ end )
52
64
end
53
65
54
66
test "rejects requests when not initialized" , % { server: server } do
55
- Server . receive_packet (
56
- server ,
57
- set_breakpoints_req ( 1 , % { "path" => "lib/mix_project.ex" } , [ % { "line" => 3 } ] )
58
- )
67
+ in_fixture ( __DIR__ , "mix_project" , fn ->
68
+ Server . receive_packet (
69
+ server ,
70
+ set_breakpoints_req ( 1 , % { "path" => "lib/mix_project.ex" } , [ % { "line" => 3 } ] )
71
+ )
59
72
60
- assert_receive (
61
- error_response (
62
- _ ,
63
- 1 ,
64
- "setBreakpoints" ,
65
- "invalidRequest" ,
66
- "Debugger request {command} was not expected" ,
67
- % { "command" => "setBreakpoints" }
73
+ assert_receive (
74
+ error_response (
75
+ _ ,
76
+ 1 ,
77
+ "setBreakpoints" ,
78
+ "invalidRequest" ,
79
+ "Debugger request {command} was not expected" ,
80
+ % { "command" => "setBreakpoints" }
81
+ )
68
82
)
69
- )
83
+ end )
70
84
end
71
85
end
72
86
73
87
describe "disconnect" do
74
88
test "succeeds when not initialized" , % { server: server } do
75
- Process . flag ( :trap_exit , true )
76
- Server . receive_packet ( server , request ( 1 , "disconnect" ) )
77
- assert_receive ( response ( _ , 1 , "disconnect" , % { } ) )
78
- assert_receive ( { :EXIT , ^ server , { :exit_code , 0 } } )
79
- Process . flag ( :trap_exit , false )
89
+ in_fixture ( __DIR__ , "mix_project" , fn ->
90
+ Process . flag ( :trap_exit , true )
91
+ Server . receive_packet ( server , request ( 1 , "disconnect" ) )
92
+ assert_receive ( response ( _ , 1 , "disconnect" , % { } ) )
93
+ assert_receive ( { :EXIT , ^ server , { :exit_code , 0 } } )
94
+ Process . flag ( :trap_exit , false )
95
+ end )
80
96
end
81
97
82
98
test "succeeds when initialized" , % { server: server } do
83
- Process . flag ( :trap_exit , true )
84
- Server . receive_packet ( server , initialize_req ( 1 , % { "clientID" => "some_id" } ) )
85
- assert_receive ( response ( _ , 1 , "initialize" , % { "supportsConfigurationDoneRequest" => true } ) )
86
- Server . receive_packet ( server , request ( 2 , "disconnect" ) )
87
- assert_receive ( response ( _ , 2 , "disconnect" , % { } ) )
88
- assert_receive ( { :EXIT , ^ server , { :exit_code , 0 } } )
89
- Process . flag ( :trap_exit , false )
99
+ in_fixture ( __DIR__ , "mix_project" , fn ->
100
+ Process . flag ( :trap_exit , true )
101
+ Server . receive_packet ( server , initialize_req ( 1 , % { "clientID" => "some_id" } ) )
102
+
103
+ assert_receive (
104
+ response ( _ , 1 , "initialize" , % { "supportsConfigurationDoneRequest" => true } )
105
+ )
106
+
107
+ Server . receive_packet ( server , request ( 2 , "disconnect" ) )
108
+ assert_receive ( response ( _ , 2 , "disconnect" , % { } ) )
109
+ assert_receive ( { :EXIT , ^ server , { :exit_code , 0 } } )
110
+ Process . flag ( :trap_exit , false )
111
+ end )
90
112
end
91
113
end
92
114
@@ -1459,119 +1481,129 @@ defmodule ElixirLS.Debugger.ServerTest do
1459
1481
end
1460
1482
1461
1483
test "Evaluate expression with OK result" , % { server: server } do
1462
- Server . receive_packet ( server , initialize_req ( 1 , % { } ) )
1463
- assert_receive ( response ( _ , 1 , "initialize" , _ ) )
1484
+ in_fixture ( __DIR__ , "mix_project" , fn ->
1485
+ Server . receive_packet ( server , initialize_req ( 1 , % { } ) )
1486
+ assert_receive ( response ( _ , 1 , "initialize" , _ ) )
1464
1487
1465
- Server . receive_packet (
1466
- server ,
1467
- gen_watch_expression_packet ( "1 + 2 + 3 + 4" )
1468
- )
1488
+ Server . receive_packet (
1489
+ server ,
1490
+ gen_watch_expression_packet ( "1 + 2 + 3 + 4" )
1491
+ )
1469
1492
1470
- assert_receive ( % { "body" => % { "result" => "10" } } , 1000 )
1493
+ assert_receive ( % { "body" => % { "result" => "10" } } , 1000 )
1471
1494
1472
- assert Process . alive? ( server )
1495
+ assert Process . alive? ( server )
1496
+ end )
1473
1497
end
1474
1498
1475
1499
@ tag :capture_log
1476
1500
test "Evaluate expression with ERROR result" , % { server: server } do
1477
- Server . receive_packet ( server , initialize_req ( 1 , % { } ) )
1478
- assert_receive ( response ( _ , 1 , "initialize" , _ ) )
1501
+ in_fixture ( __DIR__ , "mix_project" , fn ->
1502
+ Server . receive_packet ( server , initialize_req ( 1 , % { } ) )
1503
+ assert_receive ( response ( _ , 1 , "initialize" , _ ) )
1479
1504
1480
- Server . receive_packet (
1481
- server ,
1482
- gen_watch_expression_packet ( "1 = 2" )
1483
- )
1505
+ Server . receive_packet (
1506
+ server ,
1507
+ gen_watch_expression_packet ( "1 = 2" )
1508
+ )
1484
1509
1485
- assert_receive ( % { "body" => % { "result" => result } } , 1000 )
1510
+ assert_receive ( % { "body" => % { "result" => result } } , 1000 )
1486
1511
1487
- assert result =~ ~r/ badmatch/
1512
+ assert result =~ ~r/ badmatch/
1488
1513
1489
- assert Process . alive? ( server )
1514
+ assert Process . alive? ( server )
1515
+ end )
1490
1516
end
1491
1517
1492
1518
test "Evaluate expression with attempt to exit debugger process" , % { server: server } do
1493
- Server . receive_packet ( server , initialize_req ( 1 , % { } ) )
1494
- assert_receive ( response ( _ , 1 , "initialize" , _ ) )
1519
+ in_fixture ( __DIR__ , "mix_project" , fn ->
1520
+ Server . receive_packet ( server , initialize_req ( 1 , % { } ) )
1521
+ assert_receive ( response ( _ , 1 , "initialize" , _ ) )
1495
1522
1496
- Server . receive_packet (
1497
- server ,
1498
- gen_watch_expression_packet ( "Process.exit(self(), :normal)" )
1499
- )
1523
+ Server . receive_packet (
1524
+ server ,
1525
+ gen_watch_expression_packet ( "Process.exit(self(), :normal)" )
1526
+ )
1500
1527
1501
- assert_receive ( % { "body" => % { "result" => result } } , 1000 )
1528
+ assert_receive ( % { "body" => % { "result" => result } } , 1000 )
1502
1529
1503
- assert result =~ ~r/ :exit/
1530
+ assert result =~ ~r/ :exit/
1504
1531
1505
- assert Process . alive? ( server )
1532
+ assert Process . alive? ( server )
1533
+ end )
1506
1534
end
1507
1535
1508
1536
test "Evaluate expression with attempt to throw debugger process" , % { server: server } do
1509
- Server . receive_packet ( server , initialize_req ( 1 , % { } ) )
1510
- assert_receive ( response ( _ , 1 , "initialize" , _ ) )
1537
+ in_fixture ( __DIR__ , "mix_project" , fn ->
1538
+ Server . receive_packet ( server , initialize_req ( 1 , % { } ) )
1539
+ assert_receive ( response ( _ , 1 , "initialize" , _ ) )
1511
1540
1512
- Server . receive_packet (
1513
- server ,
1514
- gen_watch_expression_packet ( "throw(:goodmorning_bug)" )
1515
- )
1541
+ Server . receive_packet (
1542
+ server ,
1543
+ gen_watch_expression_packet ( "throw(:goodmorning_bug)" )
1544
+ )
1516
1545
1517
- assert_receive ( % { "body" => % { "result" => result } } , 1000 )
1546
+ assert_receive ( % { "body" => % { "result" => result } } , 1000 )
1518
1547
1519
- assert result =~ ~r/ :goodmorning_bug/
1548
+ assert result =~ ~r/ :goodmorning_bug/
1520
1549
1521
- assert Process . alive? ( server )
1550
+ assert Process . alive? ( server )
1551
+ end )
1522
1552
end
1523
1553
1524
1554
test "Evaluate expression which has long execution" , % { server: server } do
1525
- Server . receive_packet ( server , initialize_req ( 1 , % { } ) )
1526
- assert_receive ( response ( _ , 1 , "initialize" , _ ) )
1555
+ in_fixture ( __DIR__ , "mix_project" , fn ->
1556
+ Server . receive_packet ( server , initialize_req ( 1 , % { } ) )
1557
+ assert_receive ( response ( _ , 1 , "initialize" , _ ) )
1527
1558
1528
- Server . receive_packet (
1529
- server ,
1530
- launch_req ( 2 , % {
1531
- "request" => "launch" ,
1532
- "type" => "mix_task" ,
1533
- "task" => "test" ,
1534
- "projectDir" => File . cwd! ( ) ,
1535
- "debugExpressionTimeoutMs" => 500
1536
- } )
1537
- )
1559
+ Server . receive_packet (
1560
+ server ,
1561
+ launch_req ( 2 , % {
1562
+ "request" => "launch" ,
1563
+ "type" => "mix_task" ,
1564
+ "task" => "test" ,
1565
+ "projectDir" => File . cwd! ( ) ,
1566
+ "debugExpressionTimeoutMs" => 500
1567
+ } )
1568
+ )
1538
1569
1539
- assert_receive ( response ( _ , 2 , "launch" , % { } ) , 5000 )
1570
+ assert_receive ( response ( _ , 2 , "launch" , % { } ) , 5000 )
1540
1571
1541
- Server . receive_packet (
1542
- server ,
1543
- gen_watch_expression_packet ( ":timer.sleep(10_000)" )
1544
- )
1572
+ Server . receive_packet (
1573
+ server ,
1574
+ gen_watch_expression_packet ( ":timer.sleep(10_000)" )
1575
+ )
1545
1576
1546
- assert_receive ( % { "body" => % { "result" => result } } , 1100 )
1577
+ assert_receive ( % { "body" => % { "result" => result } } , 1100 )
1547
1578
1548
- assert result =~ ~r/ :elixir_ls_expression_timeout/
1579
+ assert result =~ ~r/ :elixir_ls_expression_timeout/
1549
1580
1550
- assert Process . alive? ( server )
1581
+ assert Process . alive? ( server )
1582
+ end )
1551
1583
end
1552
1584
end
1553
1585
1554
1586
test "Completions" , % { server: server } do
1555
- Server . receive_packet ( server , initialize_req ( 1 , % { } ) )
1556
- assert_receive ( response ( _ , 1 , "initialize" , _ ) )
1557
-
1558
- Server . receive_packet (
1559
- server ,
1560
- % {
1561
- "arguments" => % {
1562
- "text" => "DateTi" ,
1563
- "column" => 7
1564
- } ,
1565
- "command" => "completions" ,
1566
- "seq" => 1 ,
1567
- "type" => "request"
1568
- }
1569
- )
1587
+ in_fixture ( __DIR__ , "mix_project" , fn ->
1588
+ Server . receive_packet ( server , initialize_req ( 1 , % { } ) )
1589
+ assert_receive ( response ( _ , 1 , "initialize" , _ ) )
1570
1590
1571
- assert_receive ( % { "body" => % { "targets" => _targets } } , 10000 )
1591
+ Server . receive_packet (
1592
+ server ,
1593
+ % {
1594
+ "arguments" => % {
1595
+ "text" => "DateTi" ,
1596
+ "column" => 7
1597
+ } ,
1598
+ "command" => "completions" ,
1599
+ "seq" => 1 ,
1600
+ "type" => "request"
1601
+ }
1602
+ )
1572
1603
1573
- assert Process . alive? ( server )
1604
+ assert_receive ( % { "body" => % { "targets" => _targets } } , 10000 )
1574
1605
1575
- # assert [%{}]
1606
+ assert Process . alive? ( server )
1607
+ end )
1576
1608
end
1577
1609
end
0 commit comments