From bbe2ff02df260a72f1cc83dcb1aca8ef7c7987a7 Mon Sep 17 00:00:00 2001 From: lukinovec Date: Thu, 2 Apr 2026 15:33:35 +0200 Subject: [PATCH] BroadcastingTest: update channel inheritance test Test that the bound Broadcaster instance inherits the channels too. Also test that the channels aren't lost when switching context to another tenant. --- tests/BroadcastingTest.php | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/tests/BroadcastingTest.php b/tests/BroadcastingTest.php index 28b5296e..305bf44b 100644 --- a/tests/BroadcastingTest.php +++ b/tests/BroadcastingTest.php @@ -137,7 +137,7 @@ test('tenant broadcast manager receives the custom driver creators of the centra expect(array_keys(invade(app(BroadcastManager::class))->customCreators))->toBe($originalDrivers); }); -test('new broadcasters get the channels from the previously bound broadcaster', function() { +test('tenant broadcasters receive the channels from the broadcaster bound in central context', function() { config(['tenancy.bootstrappers' => [BroadcastingConfigBootstrapper::class]]); config([ 'broadcasting.default' => $driver = 'testing', @@ -146,20 +146,36 @@ test('new broadcasters get the channels from the previously bound broadcaster', TenancyBroadcastManager::$tenantBroadcasters[] = $driver; + $tenant1 = Tenant::create(); + $tenant2 = Tenant::create(); + app(BroadcastManager::class)->extend('testing', fn($app, $config) => new TestingBroadcaster('testing')); - $getCurrentChannels = fn() => array_keys(invade(app(BroadcastManager::class)->driver())->channels); + $getCurrentChannelsFromBoundBroadcaster = fn() => array_keys(invade(app(BroadcasterContract::class))->channels); + $getCurrentChannelsThroughManager = fn() => array_keys(invade(app(BroadcastManager::class)->driver())->channels); Broadcast::channel($channel = 'testing-channel', fn() => true); - expect($channel)->toBeIn($getCurrentChannels()); + expect($channel) + ->toBeIn($getCurrentChannelsThroughManager()) + ->toBeIn($getCurrentChannelsFromBoundBroadcaster()); - tenancy()->initialize(Tenant::create()); + tenancy()->initialize($tenant1); - expect($channel)->toBeIn($getCurrentChannels()); + expect($channel) + ->toBeIn($getCurrentChannelsThroughManager()) + ->toBeIn($getCurrentChannelsFromBoundBroadcaster()); + + tenancy()->initialize($tenant2); + + expect($channel) + ->toBeIn($getCurrentChannelsThroughManager()) + ->toBeIn($getCurrentChannelsFromBoundBroadcaster()); tenancy()->end(); - expect($channel)->toBeIn($getCurrentChannels()); + expect($channel) + ->toBeIn($getCurrentChannelsThroughManager()) + ->toBeIn($getCurrentChannelsFromBoundBroadcaster()); }); test('broadcasting channel helpers register channels correctly', function() {