@@ -73,12 +73,15 @@ class ActionTests: QuickSpec {
7373 let subject = errorSubject ( )
7474 var errored = false
7575
76- subject
77- . execute ( )
78- . subscribe ( onError: { _ in
79- errored = true
80- } )
81- . addDisposableTo ( disposeBag)
76+ waitUntil { done in
77+ subject
78+ . execute ( )
79+ . subscribe ( onError: { _ in
80+ errored = true
81+ done ( )
82+ } )
83+ . addDisposableTo ( disposeBag)
84+ }
8285
8386 expect ( errored) == true
8487 }
@@ -148,9 +151,17 @@ class ActionTests: QuickSpec {
148151 } )
149152 . addDisposableTo ( disposeBag)
150153
151- subject. execute ( )
154+ waitUntil { done in
155+ subject
156+ . execute ( )
157+ . subscribe ( onCompleted: {
158+ done ( )
159+ } )
160+ . addDisposableTo ( disposeBag)
161+ }
152162
153- expect ( elements) == [ true , false ]
163+
164+ expect ( elements) . toEventually ( equal ( [ true , false ] ) )
154165 }
155166
156167 sharedExamples ( " sending elements " ) { ( context: @escaping SharedExampleContext ) -> Void in
@@ -196,9 +207,11 @@ class ActionTests: QuickSpec {
196207 let subject = testSubject ( testItems)
197208 var receivedElements : [ String ] = [ ]
198209
199- subject. execute ( ) . subscribe ( onNext: { ( element) -> Void in
200- receivedElements += [ element]
201- } ) . addDisposableTo ( disposeBag)
210+ waitUntil { done in
211+ subject. execute ( ) . subscribe ( onNext: { ( element) -> Void in
212+ receivedElements += [ element]
213+ } , onCompleted: done) . addDisposableTo ( disposeBag)
214+ }
202215
203216 expect ( receivedElements) == testItems
204217 }
@@ -232,12 +245,15 @@ class ActionTests: QuickSpec {
232245 let subject = emptySubject ( )
233246 var completed = false
234247
235- subject
236- . execute ( )
237- . subscribe ( onCompleted: {
238- completed = true
239- } )
240- . addDisposableTo ( disposeBag)
248+ waitUntil { done in
249+ subject
250+ . execute ( )
251+ . subscribe ( onCompleted: {
252+ completed = true
253+ done ( )
254+ } )
255+ . addDisposableTo ( disposeBag)
256+ }
241257
242258 expect ( completed) == true
243259 }
@@ -249,7 +265,13 @@ class ActionTests: QuickSpec {
249265 return . empty( )
250266 } )
251267
252- subject. execute ( )
268+ waitUntil { done in
269+ subject. execute ( )
270+ . subscribe ( onCompleted: {
271+ done ( )
272+ } )
273+ . addDisposableTo ( disposeBag)
274+ }
253275
254276 expect ( invocations) == 1
255277 }
@@ -281,13 +303,23 @@ class ActionTests: QuickSpec {
281303
282304 executer. execute ( subject)
283305
284- var enabled = try ! subject. enabled. toBlocking ( ) . first ( )
285- expect ( enabled) == false
306+ expect ( try ! subject. enabled. toBlocking ( ) . first ( ) ) . toEventually ( beFalse ( ) )
307+ }
308+
309+ it ( " is externally re-enabled after executing " ) {
310+ var observer : AnyObserver < Void > !
311+ let subject = Action < Void , Void > ( workFactory: { _ in
312+ return Observable . create { ( obsv) -> Disposable in
313+ observer = obsv
314+ return Disposables . create ( )
315+ }
316+ } )
317+
318+ executer. execute ( subject)
286319
287320 observer. onCompleted ( )
288321
289- enabled = try ! subject. enabled. toBlocking ( ) . first ( )
290- expect ( enabled) == true
322+ expect ( try ! subject. enabled. toBlocking ( ) . first ( ) ) . toEventually ( beTrue ( ) )
291323 }
292324 }
293325
0 commit comments