mirror of
https://github.com/archtechx/tenancy.git
synced 2026-02-05 22:24:03 +00:00
complete test sqlite manager customize path
This commit is contained in:
parent
abd17f83a1
commit
13fed332cd
2 changed files with 25 additions and 4 deletions
|
|
@ -10,10 +10,12 @@ use Throwable;
|
||||||
|
|
||||||
class SQLiteDatabaseManager implements TenantDatabaseManager
|
class SQLiteDatabaseManager implements TenantDatabaseManager
|
||||||
{
|
{
|
||||||
|
public static string|null $path = null;
|
||||||
|
|
||||||
public function createDatabase(TenantWithDatabase $tenant): bool
|
public function createDatabase(TenantWithDatabase $tenant): bool
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
return file_put_contents(database_path($tenant->database()->getName()), '');
|
return (bool) file_put_contents($this->getPath($tenant->database()->getName()), '');
|
||||||
} catch (Throwable) {
|
} catch (Throwable) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
@ -22,7 +24,7 @@ class SQLiteDatabaseManager implements TenantDatabaseManager
|
||||||
public function deleteDatabase(TenantWithDatabase $tenant): bool
|
public function deleteDatabase(TenantWithDatabase $tenant): bool
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
return unlink(database_path($tenant->database()->getName()));
|
return unlink($this->getPath($tenant->database()->getName()));
|
||||||
} catch (Throwable) {
|
} catch (Throwable) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
@ -30,7 +32,7 @@ class SQLiteDatabaseManager implements TenantDatabaseManager
|
||||||
|
|
||||||
public function databaseExists(string $name): bool
|
public function databaseExists(string $name): bool
|
||||||
{
|
{
|
||||||
return file_exists(database_path($name));
|
return file_exists($this->getPath($name));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function makeConnectionConfig(array $baseConfig, string $databaseName): array
|
public function makeConnectionConfig(array $baseConfig, string $databaseName): array
|
||||||
|
|
@ -44,4 +46,9 @@ class SQLiteDatabaseManager implements TenantDatabaseManager
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getPath(string $name): string
|
||||||
|
{
|
||||||
|
return static::$path ? static::$path . '/' . $name : database_path($name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -225,7 +225,21 @@ test('tenant database can be created on a foreign server', function () {
|
||||||
});
|
});
|
||||||
|
|
||||||
test('path used by sqlite manager can be customized', function () {
|
test('path used by sqlite manager can be customized', function () {
|
||||||
pest()->markTestIncomplete();
|
Event::listen(TenantCreated::class, JobPipeline::make([CreateDatabase::class])->send(function (TenantCreated $event) {
|
||||||
|
return $event->tenant;
|
||||||
|
})->toListener());
|
||||||
|
|
||||||
|
// Set custom path for SQLite file
|
||||||
|
SQLiteDatabaseManager::$path = $customPath = storage_path();
|
||||||
|
|
||||||
|
$name = Str::random(8). '.sqlite';
|
||||||
|
Tenant::create([
|
||||||
|
'tenancy_db_name' => $name,
|
||||||
|
'tenancy_db_connection' => 'sqlite',
|
||||||
|
]);
|
||||||
|
|
||||||
|
expect(file_exists( $customPath . '/' . $name))->toBeTrue();
|
||||||
|
unlink($customPath . '/' . $name); // clean up
|
||||||
});
|
});
|
||||||
|
|
||||||
// Datasets
|
// Datasets
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue