diff --git a/src/StorageDrivers/RedisStorageDriver.php b/src/StorageDrivers/RedisStorageDriver.php index 10bd15f6..b604c9b8 100644 --- a/src/StorageDrivers/RedisStorageDriver.php +++ b/src/StorageDrivers/RedisStorageDriver.php @@ -53,10 +53,17 @@ class RedisStorageDriver implements StorageDriver return $this->redis->hgetall("tenants:$uuid"); } + /** + * @inheritDoc + * + * @param string $id + * @return boolean + * @todo Make tenant & domain deletion atomic. + */ public function deleteTenant(string $id): bool { try { - $domain = $this->getTenantById($id)['domain']; + $domain = json_decode($this->getTenantById($id)['domain']); } catch (\Throwable $th) { throw new \Exception("No tenant with UUID $id exists."); } diff --git a/tests/TenantManagerTest.php b/tests/TenantManagerTest.php index 45db2b62..f4cf2477 100644 --- a/tests/TenantManagerTest.php +++ b/tests/TenantManagerTest.php @@ -177,4 +177,15 @@ class TenantManagerTest extends TestCase $this->assertSame($originals['storage_root'], Storage::disk('local')->getAdapter()->getPathPrefix()); $this->assertSame($originals['cache'], app('cache')); } + + /** @test */ + public function tenant_can_be_deleted() + { + $tenant = tenant()->create('foo.localhost'); + tenant()->delete($tenant['uuid']); + $this->assertSame([], tenancy()->all()->toArray()); + + $tenant = tenant()->create('foo.localhost'); + $this->assertSame([$tenant], tenancy()->all()->toArray()); + } }