Merge branch 'master' of github.com:beyondcode/laravel-websockets

This commit is contained in:
freek 2018-12-03 09:09:49 +01:00
commit 8722e8b9a4
2 changed files with 80 additions and 0 deletions

View File

@ -28,6 +28,27 @@ class ChannelTest extends TestCase
]);
}
/** @test */
public function clients_can_unsubscribe_from_channels()
{
$connection = $this->getConnectedWebSocketConnection(['test-channel']);
$channel = $this->getChannel($connection, 'test-channel');
$this->assertTrue($channel->hasConnections());
$message = new Message(json_encode([
'event' => 'pusher:unsubscribe',
'data' => [
'channel' => 'test-channel'
],
]));
$this->pusherServer->onMessage($connection, $message);
$this->assertFalse($channel->hasConnections());
}
/** @test */
public function a_client_cannot_broadcast_to_other_clients_by_default()
{

View File

@ -0,0 +1,59 @@
<?php
namespace BeyondCode\LaravelWebsockets\Tests\Messages;
use BeyondCode\LaravelWebSockets\Tests\TestCase;
use BeyondCode\LaravelWebSockets\Tests\Mocks\Message;
class PusherClientMessageTest extends TestCase
{
/** @test */
public function client_messages_do_not_work_when_disabled()
{
$connection = $this->getConnectedWebSocketConnection(['test-channel']);
$message = new Message(json_encode([
'event' => 'client-test',
'channel' => 'test-channel',
'data' => [
'client-event' => 'test'
],
]));
$this->pusherServer->onMessage($connection, $message);
$connection->assertNotSentEvent('client-test');
}
/** @test */
public function client_messages_get_broadcasted_when_enabled()
{
$this->app['config']->set('websockets.apps', [
[
'name' => 'Test App',
'id' => 1234,
'key' => 'TestKey',
'secret' => 'TestSecret',
'enable_client_messages' => true,
],
]);
$connection = $this->getConnectedWebSocketConnection(['test-channel']);
$message = new Message(json_encode([
'event' => 'client-test',
'channel' => 'test-channel',
'data' => [
'client-event' => 'test'
],
]));
$this->pusherServer->onMessage($connection, $message);
$connection->assertSentEvent('client-test', [
'data' => [
'client-event' => 'test'
]
]);
}
}