Skip to content

Commit 96b452e

Browse files
committed
test disconnection
1 parent 7d162f0 commit 96b452e

File tree

1 file changed

+6
-16
lines changed

1 file changed

+6
-16
lines changed

tests/Unit/Servers/Reverb/Publishing/RedisPubSubProviderTest.php

+6-16
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
use Laravel\Reverb\Servers\Reverb\Contracts\PubSubIncomingMessageHandler;
55
use Laravel\Reverb\Servers\Reverb\Publishing\RedisClientFactory;
66
use Laravel\Reverb\Servers\Reverb\Publishing\RedisPubSubProvider;
7-
use React\EventLoop\Loop;
7+
use React\EventLoop\Factory;
88
use React\EventLoop\LoopInterface;
99
use React\Promise\Promise;
1010

@@ -70,7 +70,7 @@
7070

7171
it('can timeout and fail when unable to reconnect', function () {
7272
$clientFactory = Mockery::mock(RedisClientFactory::class);
73-
$loop = Loop::get();
73+
$loop = Factory::create();
7474

7575
// Publisher client
7676
$clientFactory->shouldReceive('make')
@@ -147,24 +147,14 @@
147147

148148
it('does not attempt to reconnect after a controlled disconnection', function () {
149149
$clientFactory = Mockery::mock(RedisClientFactory::class);
150-
$loop = Loop::get();
150+
$loop = Factory::create();
151151

152152
// Publisher client
153153
$clientFactory->shouldReceive('make')
154-
->once()
155-
->andReturn(new Promise(fn (callable $resolve) => $resolve));
156-
157-
// Subscriber client
158-
$clientFactory->shouldReceive('make')
159-
->once()
160-
->andReturn(new Promise(fn (callable $resolve) => $resolve));
154+
->twice()
155+
->andReturn(new Promise(fn (callable $resolve) => throw new Exception));
161156

162157
$provider = new RedisPubSubProvider($clientFactory, Mockery::mock(PubSubIncomingMessageHandler::class), 'reverb');
158+
$loop->addTimer(1, fn () => $provider->disconnect());
163159
$provider->connect($loop);
164-
165-
$loop->run();
166-
167-
$provider->disconnect();
168-
169-
170160
});

0 commit comments

Comments
 (0)