Skip to content

Commit 4b00a78

Browse files
committed
Update promises tests
1 parent 8340b14 commit 4b00a78

File tree

1 file changed

+38
-6
lines changed

1 file changed

+38
-6
lines changed

spec/concurrent/promises_spec.rb

Lines changed: 38 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99

1010
describe 'chain_completable' do
1111
it 'event' do
12-
b = event
13-
a = event.chain_completable(b)
12+
b = completable_event
13+
a = completable_event.chain_completable(b)
1414
a.complete
1515
expect(b).to be_completed
1616
end
@@ -102,7 +102,7 @@ def behaves_as_delay(delay, value)
102102

103103
describe '.event' do
104104
specify do
105-
completable_event = event
105+
completable_event = completable_event()
106106
one = completable_event.chain { 1 }
107107
join = zip(completable_event).chain { 1 }
108108
expect(one.completed?).to be false
@@ -201,8 +201,8 @@ def behaves_as_delay(delay, value)
201201

202202
expect(future { 1 }.delay).to be_a_kind_of Concurrent::Promises::Future
203203
expect(future { 1 }.delay.wait!).to be_completed
204-
expect(event.complete.delay).to be_a_kind_of Concurrent::Promises::Event
205-
expect(event.complete.delay.wait).to be_completed
204+
expect(completable_event.complete.delay).to be_a_kind_of Concurrent::Promises::Event
205+
expect(completable_event.complete.delay.wait).to be_completed
206206

207207
a = future { 1 }
208208
b = future { raise 'b' }
@@ -239,7 +239,7 @@ def behaves_as_delay(delay, value)
239239
it 'waits for all and returns event' do
240240
a = succeeded_future 1
241241
b = failed_future :any
242-
c = event.complete
242+
c = completable_event.complete
243243

244244
z2 = zip_events a, b, c
245245
z3 = zip_events a
@@ -449,6 +449,38 @@ def behaves_as_delay(delay, value)
449449
expect(future.value!).to eq :done
450450
end
451451
end
452+
453+
specify do
454+
source, token = Concurrent::Cancellation.create
455+
source.cancel
456+
expect(token.event.complete?).to be_truthy
457+
458+
cancellable_branch = Concurrent::Promises.delay { 1 }
459+
expect((cancellable_branch | token.event).value).to be_nil
460+
expect(cancellable_branch.complete?).to be_falsey
461+
end
462+
463+
specify do
464+
source, token = Concurrent::Cancellation.create(
465+
Concurrent::Promises.completable_future, false, nil, err = StandardError.new('Cancelled'))
466+
source.cancel
467+
expect(token.future.complete?).to be_truthy
468+
469+
cancellable_branch = Concurrent::Promises.delay { 1 }
470+
expect((cancellable_branch | token.event).reason).to eq err
471+
expect(cancellable_branch.complete?).to be_falsey
472+
end
473+
474+
475+
specify do
476+
source, token = Concurrent::Cancellation.create
477+
478+
cancellable_branch = Concurrent::Promises.delay { 1 }
479+
expect((cancellable_branch | token.event).value).to eq 1
480+
expect(cancellable_branch.complete?).to be_truthy
481+
end
482+
end
483+
452484
end
453485

454486
end

0 commit comments

Comments
 (0)