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

Adapt tests to the previous tenant logic

This commit is contained in:
lukinovec 2023-06-22 11:29:31 +02:00
parent 675eb26981
commit 083ecff791

View file

@ -86,7 +86,7 @@ test('tenant id is not passed to central queues', function () {
}); });
}); });
test('tenancy is initialized inside queues', function () { test('tenancy is initialized inside queues', function (bool $shouldEndTenancy) {
withTenantDatabases(); withTenantDatabases();
withFailedJobs(); withFailedJobs();
@ -104,10 +104,13 @@ test('tenancy is initialized inside queues', function () {
expect(pest()->valuestore->has('tenant_id'))->toBeFalse(); expect(pest()->valuestore->has('tenant_id'))->toBeFalse();
if ($shouldEndTenancy) {
tenancy()->end();
}
pest()->artisan('queue:work --once'); pest()->artisan('queue:work --once');
// Tenancy should not be initialized after the jobs get processed expect(! tenancy()->initialized)->toBe($shouldEndTenancy);
expect(tenancy()->initialized)->toBeFalse();
expect(DB::connection('central')->table('failed_jobs')->count())->toBe(0); expect(DB::connection('central')->table('failed_jobs')->count())->toBe(0);
@ -116,9 +119,9 @@ test('tenancy is initialized inside queues', function () {
$tenant->run(function () use ($user) { $tenant->run(function () use ($user) {
expect($user->fresh()->name)->toBe('Bar'); expect($user->fresh()->name)->toBe('Bar');
}); });
}); })->with([true, false]);
test('tenancy is initialized when retrying jobs', function () { test('tenancy is initialized when retrying jobs', function (bool $shouldEndTenancy) {
withFailedJobs(); withFailedJobs();
withTenantDatabases(); withTenantDatabases();
@ -137,17 +140,26 @@ test('tenancy is initialized when retrying jobs', function () {
expect(pest()->valuestore->has('tenant_id'))->toBeFalse(); expect(pest()->valuestore->has('tenant_id'))->toBeFalse();
if ($shouldEndTenancy) {
tenancy()->end();
}
pest()->artisan('queue:work --once'); pest()->artisan('queue:work --once');
expect(tenancy()->initialized)->toBeFalse(); expect(! tenancy()->initialized)->toBe($shouldEndTenancy);
expect(DB::connection('central')->table('failed_jobs')->count())->toBe(1); expect(DB::connection('central')->table('failed_jobs')->count())->toBe(1);
expect(pest()->valuestore->get('tenant_id'))->toBeNull(); // job failed expect(pest()->valuestore->get('tenant_id'))->toBeNull(); // job failed
pest()->artisan('queue:retry all'); pest()->artisan('queue:retry all');
if ($shouldEndTenancy) {
tenancy()->end();
}
pest()->artisan('queue:work --once'); pest()->artisan('queue:work --once');
expect(tenancy()->initialized)->toBeFalse(); expect(! tenancy()->initialized)->toBe($shouldEndTenancy);
expect(DB::connection('central')->table('failed_jobs')->count())->toBe(0); expect(DB::connection('central')->table('failed_jobs')->count())->toBe(0);
@ -156,7 +168,7 @@ test('tenancy is initialized when retrying jobs', function () {
$tenant->run(function () use ($user) { $tenant->run(function () use ($user) {
expect($user->fresh()->name)->toBe('Bar'); expect($user->fresh()->name)->toBe('Bar');
}); });
}); })->with([true, false]);
test('the tenant used by the job doesnt change when the current tenant changes', function () { test('the tenant used by the job doesnt change when the current tenant changes', function () {
withTenantDatabases(); withTenantDatabases();
@ -190,8 +202,12 @@ test('tenant connections do not persist after tenant jobs get processed', functi
dispatch(new TestJob(pest()->valuestore)); dispatch(new TestJob(pest()->valuestore));
tenancy()->end();
pest()->artisan('queue:work --once'); pest()->artisan('queue:work --once');
expect(tenancy()->initialized)->toBeFalse();
expect(collect(DB::select('SHOW FULL PROCESSLIST'))->pluck('db'))->not()->toContain($tenant->database()->getName()); expect(collect(DB::select('SHOW FULL PROCESSLIST'))->pluck('db'))->not()->toContain($tenant->database()->getName());
}); });