feat: Provisionner automatiquement un nouvel établissement
Lorsqu'un super-admin crée un établissement via l'interface, le système doit automatiquement créer la base tenant, exécuter les migrations, créer le premier utilisateur admin et envoyer l'invitation — le tout de manière asynchrone pour ne pas bloquer la réponse HTTP. Ce mécanisme rend chaque établissement opérationnel dès sa création sans intervention manuelle sur l'infrastructure.
This commit is contained in:
@@ -21,6 +21,9 @@ use function sprintf;
|
||||
use Symfony\Component\HttpClient\HttpClient;
|
||||
|
||||
use function sys_get_temp_dir;
|
||||
|
||||
use Throwable;
|
||||
|
||||
use function unlink;
|
||||
|
||||
/**
|
||||
@@ -42,6 +45,16 @@ final class GouvFrCalendarApiTest extends TestCase
|
||||
|
||||
protected function setUp(): void
|
||||
{
|
||||
// Skip si l'API externe est injoignable (timeout réseau, DNS, etc.)
|
||||
try {
|
||||
$check = HttpClient::create()->request('GET', 'https://data.education.gouv.fr', [
|
||||
'timeout' => 5,
|
||||
]);
|
||||
$check->getStatusCode();
|
||||
} catch (Throwable) {
|
||||
self::markTestSkipped('API data.education.gouv.fr injoignable — test ignoré.');
|
||||
}
|
||||
|
||||
$this->tempDir = sys_get_temp_dir() . '/classeo-calendar-test-' . uniqid();
|
||||
mkdir($this->tempDir);
|
||||
|
||||
@@ -55,6 +68,10 @@ final class GouvFrCalendarApiTest extends TestCase
|
||||
|
||||
protected function tearDown(): void
|
||||
{
|
||||
if (!isset($this->tempDir) || !is_dir($this->tempDir)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Supprimer les fichiers générés
|
||||
$files = glob($this->tempDir . '/*.json');
|
||||
foreach ($files as $file) {
|
||||
|
||||
Reference in New Issue
Block a user