@@ -24,14 +24,19 @@ final class AcceptSuggestionTests: XCTestCase {
2424 ) ,
2525 displayText: " "
2626 )
27-
27+ var extraInfo = SuggestionInjector . ExtraInfo ( )
2828 var lines = content. breakLines ( )
2929 var cursor = CursorPosition ( line: 0 , character: 0 )
3030 SuggestionInjector ( ) . acceptSuggestion (
3131 intoContentWithoutSuggestion: & lines,
3232 cursorPosition: & cursor,
33- completion: suggestion
33+ completion: suggestion,
34+ extraInfo: & extraInfo
3435 )
36+ XCTAssertTrue ( extraInfo. didChangeContent)
37+ XCTAssertTrue ( extraInfo. didChangeCursorPosition)
38+ XCTAssertNil ( extraInfo. suggestionRange)
39+ XCTAssertEqual ( lines, content. breakLines ( ) . applying ( extraInfo. modifications) )
3540 XCTAssertEqual ( cursor, . init( line: 2 , character: 19 ) )
3641 XCTAssertEqual ( lines. joined ( separator: " " ) , """
3742 struct Cat {
@@ -40,7 +45,7 @@ final class AcceptSuggestionTests: XCTestCase {
4045 }
4146 """ )
4247 }
43-
48+
4449 func test_accept_suggestion_start_from_previous_line( ) async throws {
4550 let content = """
4651 struct Cat {
@@ -61,13 +66,19 @@ final class AcceptSuggestionTests: XCTestCase {
6166 displayText: " "
6267 )
6368
69+ var extraInfo = SuggestionInjector . ExtraInfo ( )
6470 var lines = content. breakLines ( )
6571 var cursor = CursorPosition ( line: 0 , character: 0 )
6672 SuggestionInjector ( ) . acceptSuggestion (
6773 intoContentWithoutSuggestion: & lines,
6874 cursorPosition: & cursor,
69- completion: suggestion
75+ completion: suggestion,
76+ extraInfo: & extraInfo
7077 )
78+ XCTAssertTrue ( extraInfo. didChangeContent)
79+ XCTAssertTrue ( extraInfo. didChangeCursorPosition)
80+ XCTAssertNil ( extraInfo. suggestionRange)
81+ XCTAssertEqual ( lines, content. breakLines ( ) . applying ( extraInfo. modifications) )
7182 XCTAssertEqual ( cursor, . init( line: 2 , character: 19 ) )
7283 XCTAssertEqual ( lines. joined ( separator: " " ) , """
7384 struct Cat {
@@ -98,13 +109,19 @@ final class AcceptSuggestionTests: XCTestCase {
98109 displayText: " "
99110 )
100111
112+ var extraInfo = SuggestionInjector . ExtraInfo ( )
101113 var lines = content. breakLines ( )
102114 var cursor = CursorPosition ( line: 0 , character: 0 )
103115 SuggestionInjector ( ) . acceptSuggestion (
104116 intoContentWithoutSuggestion: & lines,
105117 cursorPosition: & cursor,
106- completion: suggestion
118+ completion: suggestion,
119+ extraInfo: & extraInfo
107120 )
121+ XCTAssertTrue ( extraInfo. didChangeContent)
122+ XCTAssertTrue ( extraInfo. didChangeCursorPosition)
123+ XCTAssertNil ( extraInfo. suggestionRange)
124+ XCTAssertEqual ( lines, content. breakLines ( ) . applying ( extraInfo. modifications) )
108125 XCTAssertEqual ( cursor, . init( line: 2 , character: 19 ) )
109126 XCTAssertEqual ( lines. joined ( separator: " " ) , """
110127 struct Cat {
@@ -113,7 +130,7 @@ final class AcceptSuggestionTests: XCTestCase {
113130 }
114131 """ )
115132 }
116-
133+
117134 func test_propose_suggestion_partial_overlap( ) async throws {
118135 let content = " func quickSort() {}} \n "
119136 let text = """
@@ -136,13 +153,19 @@ final class AcceptSuggestionTests: XCTestCase {
136153 displayText: " "
137154 )
138155
156+ var extraInfo = SuggestionInjector . ExtraInfo ( )
139157 var lines = content. breakLines ( )
140158 var cursor = CursorPosition ( line: 0 , character: 0 )
141159 SuggestionInjector ( ) . acceptSuggestion (
142160 intoContentWithoutSuggestion: & lines,
143161 cursorPosition: & cursor,
144- completion: suggestion
162+ completion: suggestion,
163+ extraInfo: & extraInfo
145164 )
165+ XCTAssertTrue ( extraInfo. didChangeContent)
166+ XCTAssertTrue ( extraInfo. didChangeCursorPosition)
167+ XCTAssertNil ( extraInfo. suggestionRange)
168+ XCTAssertEqual ( lines, content. breakLines ( ) . applying ( extraInfo. modifications) )
146169 XCTAssertEqual ( cursor, . init( line: 6 , character: 1 ) )
147170 XCTAssertEqual ( lines. joined ( separator: " " ) , """
148171 func quickSort() {
@@ -152,10 +175,10 @@ final class AcceptSuggestionTests: XCTestCase {
152175 quickSort(&array, left, right)
153176 print(array)
154177 }
155-
178+
156179 """ )
157180 }
158-
181+
159182 func test_no_overlap_append_to_the_end( ) async throws {
160183 let content = " func quickSort() { \n "
161184 let text = """
@@ -177,13 +200,19 @@ final class AcceptSuggestionTests: XCTestCase {
177200 displayText: " "
178201 )
179202
203+ var extraInfo = SuggestionInjector . ExtraInfo ( )
180204 var lines = content. breakLines ( )
181205 var cursor = CursorPosition ( line: 0 , character: 0 )
182206 SuggestionInjector ( ) . acceptSuggestion (
183207 intoContentWithoutSuggestion: & lines,
184208 cursorPosition: & cursor,
185- completion: suggestion
209+ completion: suggestion,
210+ extraInfo: & extraInfo
186211 )
212+ XCTAssertTrue ( extraInfo. didChangeContent)
213+ XCTAssertTrue ( extraInfo. didChangeCursorPosition)
214+ XCTAssertNil ( extraInfo. suggestionRange)
215+ XCTAssertEqual ( lines, content. breakLines ( ) . applying ( extraInfo. modifications) )
187216 XCTAssertEqual ( cursor, . init( line: 6 , character: 1 ) )
188217 XCTAssertEqual ( lines. joined ( separator: " " ) , """
189218 func quickSort() {
@@ -193,7 +222,7 @@ final class AcceptSuggestionTests: XCTestCase {
193222 quickSort(&array, left, right)
194223 print(array)
195224 }
196-
225+
197226 """ )
198227 }
199228}
0 commit comments