$driver]); $provider = AiProvider::factory()->create(['provider' => 'openai']); $result = $manager->generate($provider, 'hello'); expect($result->content)->toBe('echo: hello'); }); test('it throws when no driver is registered for the provider key', function () { $manager = new AiProviderManager([]); $provider = AiProvider::factory()->create(['provider' => 'openai']); $manager->generate($provider, 'hello'); })->throws(AiGenerationException::class, "No driver registered for AI provider 'openai'"); test('it refuses to generate with an inactive provider', function () { $driver = new class implements AiProviderDriver { public function generate(AiProvider $provider, string $prompt, array $options = []): AiGenerationResult { throw new RuntimeException('should not be called'); } }; $manager = new AiProviderManager(['openai' => $driver]); $provider = AiProvider::factory()->create(['provider' => 'openai', 'is_active' => false]); $manager->generate($provider, 'hello'); })->throws(AiGenerationException::class, 'is not active');