Skip to content

Commit 29725a8

Browse files
committed
Tests refactoring
1 parent bc6cf4b commit 29725a8

File tree

2 files changed

+76
-75
lines changed

2 files changed

+76
-75
lines changed

Sources/EventSource/ServerEvent.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ fileprivate extension Data {
130130
}
131131
}
132132

133-
fileprivate extension Array {
133+
package extension Array {
134134
subscript(safe index: Int) -> Element? {
135135
guard index >= 0, index < endIndex else {
136136
return nil

Tests/EventSourceTests/EventParserTests.swift

Lines changed: 75 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import Testing
88
@testable import EventSource
99

1010
struct EventParserTests {
11-
@Test func messagesParsing() async throws {
11+
@Test func eventParsing() async throws {
1212
var parser = ServerEventParser()
1313

1414
let text = """
@@ -31,32 +31,32 @@ struct EventParserTests {
3131
"""
3232
let data = Data(text.utf8)
3333

34-
let messages = parser.parse(data)
34+
let events = parser.parse(data)
3535

36-
#expect(messages.count == 5)
37-
38-
#expect(messages[0].data != nil)
39-
#expect(messages[0].data! == "test 1")
40-
41-
#expect(messages[1].data != nil)
42-
#expect(messages[1].data! == "test 2\ncontinued")
43-
44-
#expect(messages[2].event != nil)
45-
#expect(messages[2].data != nil)
46-
#expect(messages[2].event! == "add")
47-
#expect(messages[2].data! == "test 3")
48-
49-
#expect(messages[3].event != nil)
50-
#expect(messages[3].data != nil)
51-
#expect(messages[3].event! == "remove")
52-
#expect(messages[3].data! == "test 4")
53-
54-
#expect(messages[4].id != nil)
55-
#expect(messages[4].event != nil)
56-
#expect(messages[4].data != nil)
57-
#expect(messages[4].id! == "5")
58-
#expect(messages[4].event! == "ping")
59-
#expect(messages[4].data! == "test 5")
36+
#expect(events.count == 5)
37+
38+
let event0Data = try #require(events[safe: 0]?.data)
39+
#expect(event0Data == "test 1")
40+
41+
let event1Data = try #require(events[safe: 1]?.data)
42+
#expect(event1Data == "test 2\ncontinued")
43+
44+
let event2Event = try #require(events[safe: 2]?.event)
45+
let event2Data = try #require(events[safe: 2]?.data)
46+
#expect(event2Event == "add")
47+
#expect(event2Data == "test 3")
48+
49+
let event3Event = try #require(events[safe: 3]?.event)
50+
let event3Data = try #require(events[safe: 3]?.data)
51+
#expect(event3Event == "remove")
52+
#expect(event3Data == "test 4")
53+
54+
let event4ID = try #require(events[safe: 4]?.id)
55+
let event4Event = try #require(events[safe: 4]?.event)
56+
let event4Data = try #require(events[safe: 4]?.data)
57+
#expect(event4ID == "5")
58+
#expect(event4Event == "ping")
59+
#expect(event4Data == "test 5")
6060
}
6161

6262
@Test func emptyData() async {
@@ -68,12 +68,12 @@ struct EventParserTests {
6868
"""
6969
let data = Data(text.utf8)
7070

71-
let messages = parser.parse(data)
71+
let events = parser.parse(data)
7272

73-
#expect(messages.isEmpty)
73+
#expect(events.isEmpty)
7474
}
7575

76-
@Test func otherMessageFormats() async {
76+
@Test func otherEventFormats() async throws {
7777
var parser = ServerEventParser()
7878

7979
let text = """
@@ -98,34 +98,35 @@ struct EventParserTests {
9898
"""
9999
let data = Data(text.utf8)
100100

101-
let messages = parser.parse(data)
102-
103-
#expect(messages[0].data != nil)
104-
#expect(messages[0].data! == "test 1")
105-
106-
#expect(messages[1].id != nil)
107-
#expect(messages[1].data != nil)
108-
#expect(messages[1].id! == "2")
109-
#expect(messages[1].data! == "test 2")
110-
111-
#expect(messages[2].event != nil)
112-
#expect(messages[2].data != nil)
113-
#expect(messages[2].event! == "add")
114-
#expect(messages[2].data! == "test 3")
115-
116-
#expect(messages[3].id != nil)
117-
#expect(messages[3].event != nil)
118-
#expect(messages[3].data != nil)
119-
#expect(messages[3].id! == "4")
120-
#expect(messages[3].event! == "ping")
121-
#expect(messages[3].data! == "test 4")
122-
123-
#expect(messages[4].other != nil)
124-
#expect(messages[4].other!["test 5"] == "")
125-
126-
#expect(messages[5].other != nil)
127-
#expect(messages[5].other!["message 6"] == "")
128-
#expect(messages[5].other!["message 6-1"] == "")
101+
let events = parser.parse(data)
102+
103+
let event0Data = try #require(events[safe: 0]?.data)
104+
#expect(event0Data == "test 1")
105+
106+
let event1ID = try #require(events[safe: 1]?.id)
107+
let event1Data = try #require(events[safe: 1]?.data)
108+
#expect(event1ID == "2")
109+
#expect(event1Data == "test 2")
110+
111+
let event2 = try #require(events[safe: 2]?.event)
112+
let event2Data = try #require(events[safe: 2]?.data)
113+
#expect(event2 == "add")
114+
#expect(event2Data == "test 3")
115+
116+
let event3ID = try #require(events[safe: 3]?.id)
117+
let event3 = try #require(events[safe: 3]?.event)
118+
let event3Data = try #require(events[safe: 3]?.data)
119+
#expect(event3ID == "4")
120+
#expect(event3 == "ping")
121+
#expect(event3Data == "test 4")
122+
123+
let event4Other = try #require(events[safe: 4]?.other?["test 5"])
124+
#expect(event4Other == "")
125+
126+
let event5Other1 = try #require(events[safe: 5]?.other?["message 6"])
127+
let event5Other2 = try #require(events[safe: 5]?.other?["message 6-1"])
128+
#expect(event5Other1 == "")
129+
#expect(event5Other2 == "")
129130
}
130131

131132
@Test func dataOnlyMode() async throws {
@@ -141,32 +142,32 @@ struct EventParserTests {
141142
"""
142143
let data = Data(text.utf8)
143144

144-
let messages = parser.parse(data)
145+
let events = parser.parse(data)
145146

146-
let data1 = Data(try #require(messages[0].data?.utf8))
147-
let data2 = Data(try #require(messages[1].data?.utf8))
147+
let data1 = Data(try #require(events[0].data?.utf8))
148+
let data2 = Data(try #require(events[1].data?.utf8))
148149

149-
let message1 = try jsonDecoder.decode(TestModel.self, from: data1)
150-
let message2 = try jsonDecoder.decode(TestModel.self, from: data2)
150+
let model1 = try jsonDecoder.decode(TestModel.self, from: data1)
151+
let model2 = try jsonDecoder.decode(TestModel.self, from: data2)
151152

152-
#expect(message1.content == "\ntest\n")
153-
#expect(message2.content == "\n\n")
153+
#expect(model1.content == "\ntest\n")
154+
#expect(model2.content == "\n\n")
154155
}
155156

156-
@Test func parseNotCompleteMessage() async throws {
157+
@Test func parseNotCompleteEvent() async throws {
157158
var parser = ServerEventParser()
158159

159160
let text = """
160161
data: test 1
161162
"""
162163
let data = Data(text.utf8)
163164

164-
let messages = parser.parse(data)
165+
let events = parser.parse(data)
165166

166-
#expect(messages.count == 0)
167+
#expect(events.isEmpty)
167168
}
168169

169-
@Test func parseSeparatedMessage() async throws {
170+
@Test func parseSeparatedEvent() async throws {
170171
var parser = ServerEventParser()
171172

172173
let textPart1 = """
@@ -182,14 +183,14 @@ struct EventParserTests {
182183
let dataPart2 = Data(textPart2.utf8)
183184

184185
let _ = parser.parse(dataPart1)
185-
let messages = parser.parse(dataPart2)
186+
let events = parser.parse(dataPart2)
186187

187-
#expect(messages.count == 1)
188+
#expect(events.count == 1)
188189

189-
#expect(messages[0].event != nil)
190-
#expect(messages[0].data != nil)
191-
#expect(messages[0].event! == "add")
192-
#expect(messages[0].data! == "test 1")
190+
let event = try #require(events.first?.event)
191+
let eventData = try #require(events.first?.data)
192+
#expect(event == "add")
193+
#expect(eventData == "test 1")
193194
}
194195
}
195196

0 commit comments

Comments
 (0)