@@ -20,7 +20,7 @@ class NetworkEventRepositoryTest: QuickSpec {
20
20
expect ( spyHttp. get_argument_endpoint) . to ( equal ( " /api/events/upcoming " ) )
21
21
}
22
22
23
- it ( " get upcoming events return upcoming events" ) {
23
+ it ( " returns events for in person events" ) {
24
24
var events : [ Event ] ? = nil
25
25
AsyncExpectation . execute ( ) { expectation in
26
26
eventRepository
@@ -30,7 +30,6 @@ class NetworkEventRepositoryTest: QuickSpec {
30
30
expectation. fulfill ( )
31
31
}
32
32
33
- // We can use a multi-string literal
34
33
let jsonResponse = """
35
34
[
36
35
{
@@ -40,10 +39,12 @@ class NetworkEventRepositoryTest: QuickSpec {
40
39
" description " : " some description " ,
41
40
" venue " : {
42
41
" name " : " venue name " ,
43
- " lat " : 1.23,
44
- " lon " : 4.56,
45
- " address " : " venue address " ,
46
- " city " : " venue city "
42
+ " location " : {
43
+ " lat " : 1.23,
44
+ " lon " : 4.56,
45
+ " address " : " venue address " ,
46
+ " city " : " venue city "
47
+ }
47
48
},
48
49
" link " : " example.com "
49
50
},
@@ -54,10 +55,12 @@ class NetworkEventRepositoryTest: QuickSpec {
54
55
" description " : " some description " ,
55
56
" venue " : {
56
57
" name " : " venue name " ,
57
- " lat " : 1.23,
58
- " lon " : 4.56,
59
- " address " : " venue address " ,
60
- " city " : " venue city "
58
+ " location " : {
59
+ " lat " : 1.23,
60
+ " lon " : 4.56,
61
+ " address " : " venue address " ,
62
+ " city " : " venue city "
63
+ }
61
64
},
62
65
" link " : " example2.com "
63
66
}
@@ -71,14 +74,86 @@ class NetworkEventRepositoryTest: QuickSpec {
71
74
expect ( events? . first? . startDateTime) . to ( equal ( " 2021-06-12T18:30:00 " ) )
72
75
expect ( events? . first? . endDateTime) . to ( equal ( " 2021-06-12T21:30:00 " ) )
73
76
expect ( events? . first? . description) . to ( equal ( " some description " ) )
74
- expect ( events? . first? . venue. name) . to ( equal ( " venue name " ) )
75
- expect ( events? . first? . venue. lat) . to ( equal ( 1.23 ) )
76
- expect ( events? . first? . venue. lon) . to ( equal ( 4.56 ) )
77
- expect ( events? . first? . venue. address) . to ( equal ( " venue address " ) )
78
- expect ( events? . first? . venue. city) . to ( equal ( " venue city " ) )
77
+ expect ( events? . first? . venue? . name) . to ( equal ( " venue name " ) )
78
+ expect ( events? . first? . venue? . location ? . lat) . to ( equal ( 1.23 ) )
79
+ expect ( events? . first? . venue? . location ? . lon) . to ( equal ( 4.56 ) )
80
+ expect ( events? . first? . venue? . location ? . address) . to ( equal ( " venue address " ) )
81
+ expect ( events? . first? . venue? . location ? . city) . to ( equal ( " venue city " ) )
79
82
expect ( events? . first? . link) . to ( equal ( " example.com " ) )
80
83
}
81
-
84
+
85
+ it ( " returns events for in online events " ) {
86
+ var events : [ Event ] ? = nil
87
+ AsyncExpectation . execute ( ) { expectation in
88
+ eventRepository
89
+ . getUpcomingEvents ( )
90
+ . onSuccess { returnedEvents in
91
+ events = returnedEvents
92
+ expectation. fulfill ( )
93
+ }
94
+
95
+ let jsonResponse = """
96
+ [
97
+ {
98
+ " name " : " Online Livehouse " ,
99
+ " startDateTime " : " 2021-06-12T18:30:00 " ,
100
+ " endDateTime " : " 2021-06-12T21:30:00 " ,
101
+ " description " : " some description " ,
102
+ " venue " : {
103
+ " name " : " Online event " ,
104
+ " location " : null
105
+ },
106
+ " link " : " example.com "
107
+ }
108
+ ]
109
+ """
110
+ spyHttp. get_returnPromise. success ( jsonResponse. data ( using: . utf8) !)
111
+ }
112
+
113
+ expect ( events? . count) . to ( equal ( 1 ) )
114
+ expect ( events? . first? . name) . to ( equal ( " Online Livehouse " ) )
115
+ expect ( events? . first? . startDateTime) . to ( equal ( " 2021-06-12T18:30:00 " ) )
116
+ expect ( events? . first? . endDateTime) . to ( equal ( " 2021-06-12T21:30:00 " ) )
117
+ expect ( events? . first? . description) . to ( equal ( " some description " ) )
118
+ expect ( events? . first? . venue? . name) . to ( equal ( " Online event " ) )
119
+ expect ( events? . first? . venue? . location) . to ( beNil ( ) )
120
+ expect ( events? . first? . link) . to ( equal ( " example.com " ) )
121
+ }
122
+
123
+ it ( " returns events events with no venue " ) {
124
+ var events : [ Event ] ? = nil
125
+ AsyncExpectation . execute ( ) { expectation in
126
+ eventRepository
127
+ . getUpcomingEvents ( )
128
+ . onSuccess { returnedEvents in
129
+ events = returnedEvents
130
+ expectation. fulfill ( )
131
+ }
132
+
133
+ let jsonResponse = """
134
+ [
135
+ {
136
+ " name " : " Online Livehouse " ,
137
+ " startDateTime " : " 2021-06-12T18:30:00 " ,
138
+ " endDateTime " : " 2021-06-12T21:30:00 " ,
139
+ " description " : " some description " ,
140
+ " venue " : null,
141
+ " link " : " example.com "
142
+ }
143
+ ]
144
+ """
145
+ spyHttp. get_returnPromise. success ( jsonResponse. data ( using: . utf8) !)
146
+ }
147
+
148
+ expect ( events? . count) . to ( equal ( 1 ) )
149
+ expect ( events? . first? . name) . to ( equal ( " Online Livehouse " ) )
150
+ expect ( events? . first? . startDateTime) . to ( equal ( " 2021-06-12T18:30:00 " ) )
151
+ expect ( events? . first? . endDateTime) . to ( equal ( " 2021-06-12T21:30:00 " ) )
152
+ expect ( events? . first? . description) . to ( equal ( " some description " ) )
153
+ expect ( events? . first? . venue) . to ( beNil ( ) )
154
+ expect ( events? . first? . link) . to ( equal ( " example.com " ) )
155
+ }
156
+
82
157
it ( " getPastEvents requests GET /api/events/past " ) {
83
158
let _ = eventRepository. getPastEvents ( )
84
159
@@ -95,7 +170,6 @@ class NetworkEventRepositoryTest: QuickSpec {
95
170
expectation. fulfill ( )
96
171
}
97
172
98
- // We can use a multi-string literal
99
173
let jsonResponse = """
100
174
[
101
175
{
@@ -105,10 +179,12 @@ class NetworkEventRepositoryTest: QuickSpec {
105
179
" description " : " description " ,
106
180
" venue " : {
107
181
" name " : " venue name " ,
108
- " lat " : 1.23,
109
- " lon " : 4.56,
110
- " address " : " venue address " ,
111
- " city " : " venue city "
182
+ " location " : {
183
+ " lat " : 1.23,
184
+ " lon " : 4.56,
185
+ " address " : " venue address " ,
186
+ " city " : " venue city "
187
+ }
112
188
},
113
189
" link " : " example.com "
114
190
}
@@ -122,11 +198,11 @@ class NetworkEventRepositoryTest: QuickSpec {
122
198
expect ( events? . first? . startDateTime) . to ( equal ( " 2020-02-29T19:30:00 " ) )
123
199
expect ( events? . first? . endDateTime) . to ( equal ( " 2020-02-29T21:30:00 " ) )
124
200
expect ( events? . first? . description) . to ( equal ( " description " ) )
125
- expect ( events? . first? . venue. name) . to ( equal ( " venue name " ) )
126
- expect ( events? . first? . venue. lat) . to ( equal ( 1.23 ) )
127
- expect ( events? . first? . venue. lon) . to ( equal ( 4.56 ) )
128
- expect ( events? . first? . venue. address) . to ( equal ( " venue address " ) )
129
- expect ( events? . first? . venue. city) . to ( equal ( " venue city " ) )
201
+ expect ( events? . first? . venue? . name) . to ( equal ( " venue name " ) )
202
+ expect ( events? . first? . venue? . location ? . lat) . to ( equal ( 1.23 ) )
203
+ expect ( events? . first? . venue? . location ? . lon) . to ( equal ( 4.56 ) )
204
+ expect ( events? . first? . venue? . location ? . address) . to ( equal ( " venue address " ) )
205
+ expect ( events? . first? . venue? . location ? . city) . to ( equal ( " venue city " ) )
130
206
expect ( events? . first? . link) . to ( equal ( " example.com " ) )
131
207
}
132
208
}
0 commit comments