Skip to content

Commit 6bbefff

Browse files
committed
Add test for refactor-extract code action.
1 parent ce94e15 commit 6bbefff

File tree

1 file changed

+49
-89
lines changed

1 file changed

+49
-89
lines changed
Lines changed: 49 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -1,109 +1,67 @@
1-
let extract_local_test = Code_actions.code_action_test ~title:"Extract local"
2-
let extract_function_test = Code_actions.code_action_test ~title:"Extract function"
1+
let extract_test = Code_actions.code_action_test ~title:"Extract expression"
32

43
let%expect_test "extract local constant" =
5-
extract_local_test
4+
extract_test
65
{|
76
let f =
87
0 + $1$
98
|};
109
[%expect
1110
{|
11+
let const_name1 = 1
1212
let f =
13-
let var_name = 1 in
14-
0 + var_name |}]
15-
;;
16-
17-
let%expect_test "extract local expression" =
18-
extract_local_test
19-
{|
20-
let f =
21-
let x = 2 in
22-
$0 + 1 + x$ + 1
23-
|};
24-
[%expect
25-
{|
26-
let f =
27-
let x = 2 in
28-
let var_name = 0 + 1 + x in
29-
var_name + 1 |}]
13+
0 + const_name1
14+
|}]
3015
;;
3116

3217
let%expect_test "extract function single parameter" =
33-
extract_function_test
18+
extract_test
3419
{|
20+
let fun_name1 () = ()
3521
let f x =
3622
$(x * 2)$ + 3
3723
|};
3824
[%expect
3925
{|
40-
let fun_name x = (x * 2)
41-
26+
let fun_name1 () = ()
27+
let fun_name2 (x) = x * 2
4228
let f x =
43-
fun_name x + 3 |}]
29+
fun_name2 x + 3
30+
|}]
4431
;;
4532

4633
let%expect_test "extract function multiple parameter" =
47-
extract_function_test
48-
{|
49-
let f x =
50-
let y = 0 in
51-
$(x * y)$ + 3
52-
|};
53-
[%expect
54-
{|
55-
let fun_name y x = (x * y)
56-
57-
let f x =
58-
let y = 0 in
59-
fun_name y x + 3 |}]
60-
;;
61-
62-
let%expect_test "extract function with local module" =
63-
extract_function_test
64-
{|
65-
let f x =
66-
let module M = struct
67-
let y = 0
68-
end in
69-
$(x * M.y)$ + 3
70-
|};
71-
[%expect {||}]
72-
;;
73-
74-
(* TODO: This extraction shouldn't be allowed. *)
75-
let%expect_test "extract function with local exception" =
76-
extract_function_test
34+
extract_test
7735
{|
7836
let f x =
79-
let exception Local in
80-
$raise Local$
37+
let y = 0 in
38+
$(x * y)$ + 3
8139
|};
8240
[%expect
8341
{|
84-
let fun_name () = raise Local
85-
42+
let fun_name1 (y) (x) = x * y
8643
let f x =
87-
let exception Local in
88-
fun_name () |}]
44+
let y = 0 in
45+
fun_name1 y x + 3
46+
|}]
8947
;;
9048

9149
let%expect_test "extract function with shadowed parameter" =
92-
extract_function_test
50+
extract_test
9351
{|
9452
let x = 0
9553
let f x = $x + 1$
9654
|};
9755
[%expect
9856
{|
9957
let x = 0
100-
let fun_name x = x + 1
101-
102-
let f x = fun_name x |}]
58+
let fun_name1 (x) = x + 1
59+
let f x = fun_name1 x
60+
|}]
10361
;;
10462

10563
let%expect_test "extract function with bound variable" =
106-
extract_function_test
64+
extract_test
10765
{|
10866
let x = 0
10967
let y = 1
@@ -113,79 +71,81 @@ let f x = $x + y$
11371
{|
11472
let x = 0
11573
let y = 1
116-
let fun_name x = x + y
117-
118-
let f x = fun_name x |}]
74+
let fun_name1 (x) = x + y
75+
let f x = fun_name1 x
76+
|}]
11977
;;
12078

12179
let%expect_test "extract higher order function" =
122-
extract_function_test
80+
extract_test
12381
{|
12482
let f x =
12583
$List.map (fun y -> y + 1) x$
12684
|};
12785
[%expect
12886
{|
129-
let fun_name x = List.map (fun y -> y + 1) x
130-
87+
let fun_name1 (x) = List.map (fun y -> y + 1) x
13188
let f x =
132-
fun_name x |}]
89+
fun_name1 x
90+
|}]
13391
;;
13492

13593
let%expect_test "extract higher order function" =
136-
extract_function_test
94+
extract_test
13795
{|
13896
let f y =
13997
$List.map (fun y -> y + 1) y$
14098
|};
14199
[%expect
142100
{|
143-
let fun_name y = List.map (fun y -> y + 1) y
144-
101+
let fun_name1 (y) = List.map (fun y -> y + 1) y
145102
let f y =
146-
fun_name y |}]
103+
fun_name1 y
104+
|}]
147105
;;
148106

149107
let%expect_test "extract higher order function" =
150-
extract_function_test
108+
extract_test
151109
{|
152110
let f y =
153-
$List.map (fun y -> y + 1) y$
111+
$List.map (fun y -> y + 1) y$
154112
|};
155113
[%expect
156114
{|
157-
let fun_name y = List.map (fun y -> y + 1) y
158-
115+
let fun_name1 (y) = List.map (fun y -> y + 1) y
159116
let f y =
160-
fun_name y |}]
117+
fun_name1 y
118+
|}]
161119
;;
162120

163121
let%expect_test "extract inside let binding" =
164-
extract_function_test
122+
extract_test
165123
{|
166124
let f y =
167125
let y = y + 1 in
168126
$y + 2$
169127
|};
170128
[%expect
171129
{|
172-
let fun_name y = y + 2
173-
130+
let fun_name1 (y) = y + 2
174131
let f y =
175132
let y = y + 1 in
176-
fun_name y |}]
133+
fun_name1 y
134+
|}]
177135
;;
178136

179137
let%expect_test "extract free variable" =
180-
extract_function_test
138+
extract_test
181139
{|
140+
let z = 0
182141
let f () =
183142
$z + 1$
184143
|};
185144
[%expect
186145
{|
187-
let fun_name () = z + 1
188-
146+
let z = 0
147+
let fun_name1 () = z + 1
189148
let f () =
190-
fun_name () |}]
149+
fun_name1 ()
150+
|}]
191151
;;

0 commit comments

Comments
 (0)