This commit is contained in:
freek 2018-11-26 23:58:28 +01:00
parent 636bf67d6c
commit 17109ec8db
1 changed files with 25 additions and 42 deletions

View File

@ -10,26 +10,30 @@ use BeyondCode\LaravelWebSockets\Tests\Mocks\Message;
class ConnectionTest extends TestCase class ConnectionTest extends TestCase
{ {
/** @var \BeyondCode\LaravelWebSockets\LaravelEcho\WebSocket\PusherServer */
protected $pusherServer;
public function setUp()
{
parent::setUp();
$this->pusherServer = app(PusherServer::class);
}
/** @test */ /** @test */
public function unknown_app_keys_can_not_connect() public function unknown_app_keys_can_not_connect()
{ {
$this->expectException(UnknownAppKeyException::class); $this->expectException(UnknownAppKeyException::class);
/** @var PusherServer $server */ $this->pusherServer->onOpen($this->getWebSocketConnection('/?appKey=test'));
$server = app(PusherServer::class);
$server->onOpen($this->getWebSocketConnection('/?appKey=test'));
} }
/** @test */ /** @test */
public function known_app_keys_can_connect() public function known_app_keys_can_connect()
{ {
/** @var PusherServer $server */
$server = app(PusherServer::class);
$connection = $this->getWebSocketConnection(); $connection = $this->getWebSocketConnection();
$server->onOpen($connection); $this->pusherServer->onOpen($connection);
$connection->assertSentEvent('pusher:connection_established'); $connection->assertSentEvent('pusher:connection_established');
} }
@ -37,12 +41,9 @@ class ConnectionTest extends TestCase
/** @test */ /** @test */
public function successful_connections_have_the_client_attached() public function successful_connections_have_the_client_attached()
{ {
/** @var PusherServer $server */
$server = app(PusherServer::class);
$connection = $this->getWebSocketConnection(); $connection = $this->getWebSocketConnection();
$server->onOpen($connection); $this->pusherServer->onOpen($connection);
$this->assertInstanceOf(Client::class, $connection->client); $this->assertInstanceOf(Client::class, $connection->client);
$this->assertSame(1234, $connection->client->appId); $this->assertSame(1234, $connection->client->appId);
@ -54,16 +55,13 @@ class ConnectionTest extends TestCase
/** @test */ /** @test */
public function ping_returns_pong() public function ping_returns_pong()
{ {
/** @var PusherServer $server */
$server = app(PusherServer::class);
$connection = $this->getWebSocketConnection(); $connection = $this->getWebSocketConnection();
$message = new Message('{"event": "pusher:ping"}'); $message = new Message('{"event": "pusher:ping"}');
$server->onOpen($connection); $this->pusherServer->onOpen($connection);
$server->onMessage($connection, $message); $this->pusherServer->onMessage($connection, $message);
$connection->assertSentEvent('pusher:pong'); $connection->assertSentEvent('pusher:pong');
} }
@ -71,9 +69,6 @@ class ConnectionTest extends TestCase
/** @test */ /** @test */
public function clients_can_subscribe_to_basic_channels() public function clients_can_subscribe_to_basic_channels()
{ {
/** @var PusherServer $server */
$server = app(PusherServer::class);
$connection = $this->getWebSocketConnection(); $connection = $this->getWebSocketConnection();
$message = new Message(json_encode([ $message = new Message(json_encode([
@ -83,9 +78,9 @@ class ConnectionTest extends TestCase
], ],
])); ]));
$server->onOpen($connection); $this->pusherServer->onOpen($connection);
$server->onMessage($connection, $message); $this->pusherServer->onMessage($connection, $message);
$connection->assertSentEvent('pusher_internal:subscription_succeeded', [ $connection->assertSentEvent('pusher_internal:subscription_succeeded', [
'channel' => 'basic-channel' 'channel' => 'basic-channel'
@ -97,9 +92,6 @@ class ConnectionTest extends TestCase
{ {
$this->expectException(InvalidSignatureException::class); $this->expectException(InvalidSignatureException::class);
/** @var PusherServer $server */
$server = app(PusherServer::class);
$connection = $this->getWebSocketConnection(); $connection = $this->getWebSocketConnection();
$message = new Message(json_encode([ $message = new Message(json_encode([
@ -110,20 +102,17 @@ class ConnectionTest extends TestCase
], ],
])); ]));
$server->onOpen($connection); $this->pusherServer->onOpen($connection);
$server->onMessage($connection, $message); $this->pusherServer->onMessage($connection, $message);
} }
/** @test */ /** @test */
public function clients_can_subscribe_to_private_channels() public function clients_can_subscribe_to_private_channels()
{ {
/** @var PusherServer $server */
$server = app(PusherServer::class);
$connection = $this->getWebSocketConnection(); $connection = $this->getWebSocketConnection();
$server->onOpen($connection); $this->pusherServer->onOpen($connection);
$signature = "{$connection->socketId}:private-channel"; $signature = "{$connection->socketId}:private-channel";
@ -135,7 +124,7 @@ class ConnectionTest extends TestCase
], ],
])); ]));
$server->onMessage($connection, $message); $this->pusherServer->onMessage($connection, $message);
$connection->assertSentEvent('pusher_internal:subscription_succeeded', [ $connection->assertSentEvent('pusher_internal:subscription_succeeded', [
'channel' => 'private-channel' 'channel' => 'private-channel'
@ -147,9 +136,6 @@ class ConnectionTest extends TestCase
{ {
$this->expectException(InvalidSignatureException::class); $this->expectException(InvalidSignatureException::class);
/** @var PusherServer $server */
$server = app(PusherServer::class);
$connection = $this->getWebSocketConnection(); $connection = $this->getWebSocketConnection();
$message = new Message(json_encode([ $message = new Message(json_encode([
@ -160,20 +146,17 @@ class ConnectionTest extends TestCase
], ],
])); ]));
$server->onOpen($connection); $this->pusherServer->onOpen($connection);
$server->onMessage($connection, $message); $this->pusherServer->onMessage($connection, $message);
} }
/** @test */ /** @test */
public function clients_can_subscribe_to_presence_channels() public function clients_can_subscribe_to_presence_channels()
{ {
/** @var PusherServer $server */
$server = app(PusherServer::class);
$connection = $this->getWebSocketConnection(); $connection = $this->getWebSocketConnection();
$server->onOpen($connection); $this->pusherServer->onOpen($connection);
$channelData = [ $channelData = [
'user_id' => 1, 'user_id' => 1,
@ -193,7 +176,7 @@ class ConnectionTest extends TestCase
], ],
])); ]));
$server->onMessage($connection, $message); $this->pusherServer->onMessage($connection, $message);
$connection->assertSentEvent('pusher_internal:subscription_succeeded', [ $connection->assertSentEvent('pusher_internal:subscription_succeeded', [
'channel' => 'presence-channel', 'channel' => 'presence-channel',