codebergApiBase()); self::assertSame('fds2610', $config->codebergOwner()); self::assertSame('monitor', $config->codebergRepo()); self::assertNull($config->codebergToken()); self::assertNull($config->adminApiKey()); self::assertSame(8, $config->deskCount()); } /** * Regression: get() griff frueher selbst auf getenv() zurueck, wodurch ein in der * Umgebung gesetzter CODEBERG_TOKEN in eine explizit gebaute Config (und damit in * Testausgaben) durchschlug. */ public function testExplicitEnvArrayDoesNotFallBackToProcessEnvironment(): void { putenv('CODEBERG_TOKEN=darf-nicht-durchsickern'); try { self::assertNull((new Config([]))->codebergToken()); } finally { putenv('CODEBERG_TOKEN'); } } public function testValuesCanBeOverridden(): void { $config = new Config([ 'CODEBERG_API_BASE' => 'https://example.org/api/v1/', 'CODEBERG_OWNER' => 'someone', 'CODEBERG_REPO' => 'somerepo', 'CODEBERG_TOKEN' => 'tok', 'MONITOR_ADMIN_API_KEY' => 'secret', 'MONITOR_DESK_COUNT' => '3', ]); self::assertSame('https://example.org/api/v1', $config->codebergApiBase()); self::assertSame('someone', $config->codebergOwner()); self::assertSame('somerepo', $config->codebergRepo()); self::assertSame('tok', $config->codebergToken()); self::assertSame('secret', $config->adminApiKey()); self::assertSame(3, $config->deskCount()); } }