Skip to content

Commit 53c7820

Browse files
committed
Update the ServiceTests to match the in-place mutation change
1 parent 479fc77 commit 53c7820

5 files changed

Lines changed: 120 additions & 104 deletions

File tree

Core/Tests/ServiceTests/AcceptSuggestionTests.swift

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -28,41 +28,41 @@ final class AcceptSuggestionTests: XCTestCase {
2828
),
2929
]
3030

31-
let content = """
32-
struct Cat {}
33-
34-
"""
31+
let lines = [
32+
"struct Cat {}\n",
33+
"\n",
34+
]
3535

3636
let result1 = try await service.getSuggestedCode(editorContent: .init(
37-
content: content,
38-
lines: content.breakLines(appendLineBreakToLastLine: true),
37+
content: lines.joined(),
38+
lines: lines,
3939
uti: "",
4040
cursorPosition: .init(line: 0, character: 0),
4141
tabSize: 1,
4242
indentSize: 1,
4343
usesTabsForIndentation: false
4444
))
4545

46+
let result1Lines = lines.applying(result1.modifications)
47+
4648
let result2 = try await service.getSuggestionAcceptedCode(editorContent: .init(
47-
content: result1.content,
48-
lines: result1.content.breakLines(appendLineBreakToLastLine: true),
49+
content: result1Lines.joined(),
50+
lines: result1Lines,
4951
uti: "",
5052
cursorPosition: .init(line: 3, character: 5),
5153
tabSize: 1,
5254
indentSize: 1,
5355
usesTabsForIndentation: false
5456
))
5557

56-
XCTAssertEqual(
57-
Array(result2.content.breakLines(appendLineBreakToLastLine: true).dropLast(1)),
58-
result1.content.breakLines(appendLineBreakToLastLine: true).applying(result2.modifications)
59-
)
58+
let result2Lines = result1Lines.applying(result2.modifications)
59+
60+
XCTAssertEqual(result2Lines.joined(), result2.content)
6061
XCTAssertEqual(result2.content, """
6162
struct Cat {}
6263
6364
struct Dog {}
6465
65-
6666
""", "Previous suggestions should be removed.")
6767

6868
XCTAssertEqual(
@@ -72,20 +72,19 @@ final class AcceptSuggestionTests: XCTestCase {
7272
)
7373

7474
let result3 = try await service.getSuggestionAcceptedCode(editorContent: .init(
75-
content: content,
76-
lines: content.breakLines(appendLineBreakToLastLine: true),
75+
content: lines.joined(),
76+
lines: lines,
7777
uti: "",
7878
cursorPosition: .init(line: 0, character: 3),
7979
tabSize: 1,
8080
indentSize: 1,
8181
usesTabsForIndentation: false
8282
))
8383

84-
XCTAssertEqual(result3.content, content, "Deleting the code and accept again does nothing")
85-
XCTAssertEqual(
86-
result3.content.breakLines(appendLineBreakToLastLine: true),
87-
content.breakLines(appendLineBreakToLastLine: true).applying(result3.modifications)
88-
)
84+
let result3Lines = lines.applying(result3.modifications)
85+
86+
XCTAssertEqual(result3Lines, lines, "Deleting the code and accept again does nothing")
87+
XCTAssertEqual(result3.content, result3Lines.joined())
8988
XCTAssertEqual(result3.newCursor, nil)
9089
}
9190
}

Core/Tests/ServiceTests/GetNextSuggestionTests.swift

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ final class GetNextSuggestionTests: XCTestCase {
2929
completion(
3030
text: """
3131
32-
struct Wolve {}
32+
struct Wolf {}
3333
""",
3434
range: .init(
3535
start: .init(line: 7, character: 0),
@@ -38,69 +38,75 @@ final class GetNextSuggestionTests: XCTestCase {
3838
),
3939
]
4040

41-
var content = """
42-
struct Cat {}
41+
let lines = [
42+
"struct Cat {}\n",
43+
"\n",
44+
]
4345

44-
"""
45-
4646
let result1 = try await service.getSuggestedCode(editorContent: .init(
47-
content: content,
48-
lines: content.breakLines(),
47+
content: lines.joined(),
48+
lines: lines,
4949
uti: "",
5050
cursorPosition: .init(line: 0, character: 0),
5151
tabSize: 1,
5252
indentSize: 1,
5353
usesTabsForIndentation: false
5454
))
55-
56-
content = result1.content
55+
56+
let result1Lines = lines.applying(result1.modifications)
5757

5858
let result2 = try await service.getNextSuggestedCode(editorContent: .init(
59-
content: content,
60-
lines: content.breakLines(),
59+
content: result1Lines.joined(),
60+
lines: result1Lines,
6161
uti: "",
6262
cursorPosition: .init(line: 3, character: 5),
6363
tabSize: 1,
6464
indentSize: 1,
6565
usesTabsForIndentation: false
6666
))
67+
68+
let result2Lines = result1Lines.applying(result2.modifications)
6769

70+
XCTAssertEqual(result2Lines.joined(), result2.content)
6871
XCTAssertEqual(result2.content, """
6972
struct Cat {}
73+
7074
/*========== Copilot Suggestion 2/2
7175
72-
struct Wolve {}
76+
struct Wolf {}
7377
*///======== End of Copilot Suggestion
7478
7579
""", "Previous suggestions should be removed.")
7680

7781
XCTAssertEqual(
7882
result2.newCursor,
79-
.init(line: 0, character: 0),
83+
.init(line: 1, character: 0),
8084
"The cursor was in the deleted suggestion, reset it to 1 line above the suggestion, set its col to 0"
8185
)
82-
83-
content = result2.content
84-
86+
8587
let result3 = try await service.getNextSuggestedCode(editorContent: .init(
86-
content: content,
87-
lines: content.breakLines(),
88+
content: result2Lines.joined(),
89+
lines: result2Lines,
8890
uti: "",
8991
cursorPosition: .init(line: 0, character: 3),
9092
tabSize: 1,
9193
indentSize: 1,
9294
usesTabsForIndentation: false
9395
))
9496

97+
let result3Lines = lines.applying(result3.modifications)
98+
99+
XCTAssertEqual(result3.content, result3Lines.joined())
95100
XCTAssertEqual(result3.content, """
96101
struct Cat {}
102+
97103
/*========== Copilot Suggestion 1/2
98104
99105
struct Dog {}
100106
*///======== End of Copilot Suggestion
101107
102108
""", "Cycling through the suggestions.")
103109

104-
XCTAssertEqual( result3.newCursor, .init(line: 0, character: 3) )
110+
XCTAssertEqual(result3.newCursor, .init(line: 0, character: 3))
105111
}
106112
}

Core/Tests/ServiceTests/GetPreviousSuggestionTests.swift

Lines changed: 29 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ final class GetPreviousSuggestionTests: XCTestCase {
2929
completion(
3030
text: """
3131
32-
struct Wolve {}
32+
struct Wolf {}
3333
""",
3434
range: .init(
3535
start: .init(line: 7, character: 0),
@@ -38,69 +38,76 @@ final class GetPreviousSuggestionTests: XCTestCase {
3838
),
3939
]
4040

41-
var content = """
42-
struct Cat {}
41+
let lines = [
42+
"struct Cat {}\n",
43+
"\n",
44+
]
4345

44-
"""
45-
4646
let result1 = try await service.getSuggestedCode(editorContent: .init(
47-
content: content,
48-
lines: content.breakLines(),
47+
content: lines.joined(),
48+
lines: lines,
4949
uti: "",
5050
cursorPosition: .init(line: 0, character: 0),
5151
tabSize: 1,
5252
indentSize: 1,
5353
usesTabsForIndentation: false
5454
))
55-
56-
content = result1.content
5755

58-
let result2 = try await service.getNextSuggestedCode(editorContent: .init(
59-
content: content,
60-
lines: content.breakLines(),
56+
let result1Lines = lines.applying(result1.modifications)
57+
58+
let result2 = try await service.getPreviousSuggestedCode(editorContent: .init(
59+
content: result1Lines.joined(),
60+
lines: result1Lines,
6161
uti: "",
6262
cursorPosition: .init(line: 3, character: 5),
6363
tabSize: 1,
6464
indentSize: 1,
6565
usesTabsForIndentation: false
6666
))
6767

68+
let result2Lines = result1Lines.applying(result2.modifications)
69+
70+
XCTAssertEqual(result2Lines.joined(), result2.content)
6871
XCTAssertEqual(result2.content, """
6972
struct Cat {}
73+
7074
/*========== Copilot Suggestion 2/2
7175
72-
struct Wolve {}
76+
struct Wolf {}
7377
*///======== End of Copilot Suggestion
7478
7579
""", "Previous suggestions should be removed.")
7680

7781
XCTAssertEqual(
7882
result2.newCursor,
79-
.init(line: 0, character: 0),
83+
.init(line: 1, character: 0),
8084
"The cursor was in the deleted suggestion, reset it to 1 line above the suggestion, set its col to 0"
8185
)
82-
83-
content = result2.content
84-
85-
let result3 = try await service.getNextSuggestedCode(editorContent: .init(
86-
content: content,
87-
lines: content.breakLines(),
86+
87+
let result3 = try await service.getPreviousSuggestedCode(editorContent: .init(
88+
content: result2Lines.joined(),
89+
lines: result2Lines,
8890
uti: "",
8991
cursorPosition: .init(line: 0, character: 3),
9092
tabSize: 1,
9193
indentSize: 1,
9294
usesTabsForIndentation: false
9395
))
94-
96+
97+
let result3Lines = lines.applying(result3.modifications)
98+
99+
XCTAssertEqual(result3.content, result3Lines.joined())
100+
95101
XCTAssertEqual(result3.content, """
96102
struct Cat {}
103+
97104
/*========== Copilot Suggestion 1/2
98105
99106
struct Dog {}
100107
*///======== End of Copilot Suggestion
101108
102109
""", "Cycling through the suggestions.")
103110

104-
XCTAssertEqual( result3.newCursor, .init(line: 0, character: 3) )
111+
XCTAssertEqual(result3.newCursor, .init(line: 0, character: 3))
105112
}
106113
}

Core/Tests/ServiceTests/GetSuggestionsTests.swift

Lines changed: 27 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -28,27 +28,25 @@ final class GetSuggestionsTests: XCTestCase {
2828
),
2929
]
3030

31-
let content = """
32-
struct Cat {
33-
34-
}
35-
36-
"""
31+
let lines = [
32+
"struct Cat {\n",
33+
"\n",
34+
"}\n",
35+
]
3736

3837
let result = try await service.getSuggestedCode(editorContent: .init(
39-
content: content,
40-
lines: content.breakLines(),
38+
content: lines.joined(),
39+
lines: lines,
4140
uti: "",
4241
cursorPosition: .init(line: 0, character: 17),
4342
tabSize: 1,
4443
indentSize: 1,
4544
usesTabsForIndentation: false
4645
))
4746

48-
XCTAssertEqual(
49-
result.content.breakLines(appendLineBreakToLastLine: true),
50-
content.breakLines(appendLineBreakToLastLine: true).applying(result.modifications)
51-
)
47+
let resultLines = lines.applying(result.modifications)
48+
49+
XCTAssertEqual(resultLines.joined(), result.content)
5250
XCTAssertEqual(result.content, """
5351
struct Cat {
5452
@@ -78,35 +76,35 @@ final class GetSuggestionsTests: XCTestCase {
7876
),
7977
]
8078

81-
let content = """
82-
struct Cat {
83-
84-
/*========== Copilot Suggestion 1/1
85-
var name: String
86-
var age: String
87-
*///======== End of Copilot Suggestion
88-
}
89-
90-
"""
79+
let lines = [
80+
"struct Cat {\n",
81+
"\n",
82+
"/*========== Copilot Suggestion 1/1\n",
83+
" var name: String\n",
84+
" var age: String\n",
85+
"*///======== End of Copilot Suggestion\n",
86+
"}\n",
87+
"\n",
88+
]
9189

9290
let result = try await service.getSuggestedCode(editorContent: .init(
93-
content: content,
94-
lines: content.breakLines(appendLineBreakToLastLine: true),
91+
content: lines.joined(),
92+
lines: lines,
9593
uti: "",
9694
cursorPosition: .init(line: 6, character: 1),
9795
tabSize: 1,
9896
indentSize: 1,
9997
usesTabsForIndentation: false
10098
))
101-
XCTAssertEqual(
102-
Array(result.content.breakLines(appendLineBreakToLastLine: true).dropLast(1)),
103-
content.breakLines(appendLineBreakToLastLine: true).applying(result.modifications)
104-
)
99+
100+
let resultLines = lines.applying(result.modifications)
101+
102+
XCTAssertEqual(resultLines.joined(), result.content)
105103
XCTAssertEqual(result.content, """
106104
struct Cat {
107105
108106
}
109-
107+
110108
/*========== Copilot Suggestion 1/1
111109
112110
struct Dog {}

0 commit comments

Comments
 (0)