1
0
Fork 0
mirror of https://github.com/archtechx/tenancy.git synced 2026-02-05 15:54:03 +00:00

Add ViteBundlerTest

This commit is contained in:
Wilsen Hernández 2022-09-25 14:41:17 -04:00
parent bb4bd80efe
commit 778022b42a
2 changed files with 46 additions and 3 deletions

View file

@ -4,16 +4,18 @@ declare(strict_types=1);
namespace Stancl\Tenancy\Features;
use Illuminate\Foundation\Application;
use Illuminate\Foundation\Vite as FoundationVite;
use Illuminate\Support\Facades\App;
use Stancl\Tenancy\Contracts\Feature;
use Stancl\Tenancy\Tenancy;
use Stancl\Tenancy\Vite;
use Stancl\Tenancy\Vite as StanclVite;
class ViteBundler implements Feature
{
public function __construct(protected Application $app) { }
public function bootstrap(Tenancy $tenancy): void
{
App::singleton(FoundationVite::class, Vite::class);
$this->app->singleton(FoundationVite::class, StanclVite::class);
}
}

View file

@ -0,0 +1,41 @@
<?php
declare(strict_types=1);
use Illuminate\Foundation\Vite as FoundationVite;
use Illuminate\Support\Facades\App;
use Stancl\Tenancy\Features\ViteBundler;
use Stancl\Tenancy\Tests\Etc\Tenant;
use Stancl\Tenancy\Vite as StanclVite;
test('replaces the vite helper instance with custom class', function () {
$concreteBindings = App::getBindings()[FoundationVite::class]['concrete'];
expect($concreteBindings(App::getInstance()))
->toBeInstanceOf(FoundationVite::class);
expect($concreteBindings(App::getInstance()))
->not->toBeInstanceOf(StanclVite::class);
config([
'tenancy.features' => [ViteBundler::class],
]);
$tenant = Tenant::create();
tenancy()->initialize($tenant);
$concreteBindings = App::getBindings()[FoundationVite::class]['concrete'];
expect($concreteBindings)
->toBeCallable();
expect($concreteBindings(App::getInstance()))
->toBeInstanceOf(FoundationVite::class);
expect($concreteBindings(App::getInstance()))
->toBeInstanceOf(StanclVite::class);
tenancy()->end();
});