Skip to content

Commit 0464e10

Browse files
authored
Merge pull request ReactiveCocoa#33 from Lightricks/feature/switch-to-latest-complete-if-no-inner-signal-is-sent
RACSignal+Operations: make -switchToLatest complete in all scenarios.
2 parents df81491 + 68a4a41 commit 0464e10

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

ReactiveObjC/RACSignal+Operations.m

+1-1
Original file line numberDiff line numberDiff line change
@@ -854,7 +854,7 @@ - (RACSignal *)takeUntilReplacement:(RACSignal *)replacement {
854854
- (RACSignal *)switchToLatest {
855855
return [[RACSignal createSignal:^(id<RACSubscriber> subscriber) {
856856
__block BOOL outerCompleted = NO;
857-
__block BOOL innerCompleted = NO;
857+
__block BOOL innerCompleted = YES;
858858
__block NSUInteger currentInnerIndex = 0;
859859

860860
RACSerialDisposable *innerDisposable = [[RACSerialDisposable alloc] init];

ReactiveObjCTests/RACSignalSpec.m

+7
Original file line numberDiff line numberDiff line change
@@ -1985,6 +1985,13 @@ + (void)configure:(Configuration *)configuration {
19851985
expect(@(completed)).to(beTruthy());
19861986
});
19871987

1988+
qck_it(@"should send completed when the switching signal completes and no signal is sent", ^{
1989+
expect(@(completed)).to(beFalsy());
1990+
1991+
[subject sendCompleted];
1992+
expect(@(completed)).to(beTruthy());
1993+
});
1994+
19881995
qck_it(@"should dispose previous inner signal before subscribing to new inner signal", ^{
19891996
RACSubject *otherSignal = [RACSubject subject];
19901997
RACSignal *signal = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {

0 commit comments

Comments
 (0)