'null']); TenancyBroadcastManager::$tenantBroadcasters[] = 'null'; $originalBroadcaster = app(BroadcasterContract::class); tenancy()->initialize(Tenant::create()); // TenancyBroadcastManager binds new broadcaster $tenantBroadcaster = app(BroadcastManager::class)->driver(); expect($tenantBroadcaster)->not()->toBe($originalBroadcaster); tenancy()->end(); expect($originalBroadcaster)->toBe(app(BroadcasterContract::class)); }); test('new broadcasters get the channels from the previously bound broadcaster', function() { config([ 'broadcasting.default' => $driver = 'testing', 'broadcasting.connections.testing.driver' => $driver, ]); TenancyBroadcastManager::$tenantBroadcasters[] = $driver; $registerTestingBroadcaster = fn() => app(BroadcastManager::class)->extend('testing', fn($app, $config) => new TestingBroadcaster('testing')); $getCurrentChannels = fn() => array_keys(invade(app(BroadcastManager::class)->driver())->channels); $registerTestingBroadcaster(); Broadcast::channel($channel = 'testing-channel', fn() => true); expect($channel)->toBeIn($getCurrentChannels()); tenancy()->initialize(Tenant::create()); $registerTestingBroadcaster(); expect($channel)->toBeIn($getCurrentChannels()); tenancy()->end(); $registerTestingBroadcaster(); expect($channel)->toBeIn($getCurrentChannels()); });