[RootUrlBootstrapper::class]]); Route::group([ 'middleware' => InitializeTenancyBySubdomain::class, ], function () { Route::get('/', function () { return true; })->name('home'); }); $baseUrl = url(route('home')); config(['app.url' => $baseUrl]); $rootUrlOverride = function (Tenant $tenant) use ($baseUrl) { $scheme = str($baseUrl)->before('://'); $hostname = str($baseUrl)->after($scheme . '://'); return $scheme . '://' . $tenant->getTenantKey() . '.' . $hostname; }; RootUrlBootstrapper::$rootUrlOverride = $rootUrlOverride; $tenant = Tenant::create(); $tenantUrl = $rootUrlOverride($tenant); expect($tenantUrl)->not()->toBe($baseUrl); expect(url(route('home')))->toBe($baseUrl); expect(URL::to('/'))->toBe($baseUrl); expect(config('app.url'))->toBe($baseUrl); tenancy()->initialize($tenant); expect(url(route('home')))->toBe($tenantUrl); expect(URL::to('/'))->toBe($tenantUrl); expect(config('app.url'))->toBe($tenantUrl); tenancy()->end(); expect(url(route('home')))->toBe($baseUrl); expect(URL::to('/'))->toBe($baseUrl); expect(config('app.url'))->toBe($baseUrl); });