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

convert test to pest

This commit is contained in:
Abrar Ahmad 2022-08-31 17:12:58 +05:00
parent a7e1a17cd0
commit cbdcec2bcd
2 changed files with 35 additions and 61 deletions

View file

@ -1,11 +1,12 @@
<?php
declare(strict_types=1);
namespace Stancl\Tenancy\Bootstrappers;
use Illuminate\Bus\BatchRepository;
use Illuminate\Bus\DatabaseBatchRepository;
use Illuminate\Support\Facades\DB;
use ReflectionClass;
use Stancl\Tenancy\Contracts\TenancyBootstrapper;
use Stancl\Tenancy\Contracts\Tenant;

View file

@ -1,13 +1,7 @@
<?php
declare(strict_types = 1);
namespace Stancl\Tenancy\Tests;
use Illuminate\Bus\BatchRepository;
use Illuminate\Support\Facades\Event;
use Illuminate\Support\Str;
use ReflectionClass;
use Stancl\Tenancy\Bootstrappers\BatchTenancyBootstrapper;
use Stancl\Tenancy\Bootstrappers\DatabaseTenancyBootstrapper;
use Stancl\Tenancy\Events\TenancyEnded;
@ -16,12 +10,7 @@ use Stancl\Tenancy\Listeners\BootstrapTenancy;
use Stancl\Tenancy\Listeners\RevertToCentralContext;
use Stancl\Tenancy\Tests\Etc\Tenant;
class BatchTest extends TestCase
{
public function setUp(): void
{
parent::setUp();
beforeEach(function () {
$this->app->singleton(BatchTenancyBootstrapper::class);
config([
@ -33,39 +22,23 @@ class BatchTest extends TestCase
Event::listen(TenancyInitialized::class, BootstrapTenancy::class);
Event::listen(TenancyEnded::class, RevertToCentralContext::class);
}
/** @test */
public function batch_repository_is_set_to_tenant_connection_and_reverted()
{
if (! version_compare(app()->version(), '8.0', '>=')) {
$this->markTestSkipped('Job batches are only supported in Laravel 8+');
}
});
test('batch repository is set to tenant connection and reverted', function () {
$tenant = Tenant::create();
$this->assertEquals('central', $this->getBatchRepositoryConnectionName(), 'Expected initial connection to be central');
expect(getBatchRepositoryConnectionName())->toBe('central');
tenancy()->initialize($tenant);
$this->assertEquals('tenant', $this->getBatchRepositoryConnectionName(), 'Expected tenant connection to be tenant');
expect(getBatchRepositoryConnectionName())->toBe('tenant');
tenancy()->end();
$this->assertEquals('central', $this->getBatchRepositoryConnectionName(), 'Expected the reverted connection to be central');
}
expect(getBatchRepositoryConnectionName())->toBe('central');
})->skip(fn() => version_compare(app()->version(), '8.0', '<'), 'Job batches are only supported in Laravel 8+');
private function getBatchRepositoryConnectionName(): string
function getBatchRepositoryConnectionName()
{
$batchRepository = app(BatchRepository::class);
$batchRepositoryReflection = new ReflectionClass($batchRepository);
$connectionProperty = $batchRepositoryReflection->getProperty('connection');
$connectionProperty->setAccessible(true);
$connection = $connectionProperty->getValue($batchRepository);
return $connection->getName();
}
return app(BatchRepository::class)->getConnection()->getName();
}