@@ -8,7 +8,7 @@ import Testing
88@testable import EventSource
99
1010struct 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 \n continued " )
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 \n continued " )
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 == " \n test \n " )
153- #expect( message2 . content == " \n \n " )
153+ #expect( model1 . content == " \n test \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