Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions src/EppoClient.php
Original file line number Diff line number Diff line change
Expand Up @@ -672,4 +672,14 @@ public static function createTestClient(
throwOnFailedInit: $throwOnFailedInit
);
}

/**
* Gets the current configuration.
*
* @return Configuration the current configuration
*/
public function getConfiguration(): Configuration
{
return $this->configurationStore->getConfiguration();
}
}
42 changes: 42 additions & 0 deletions tests/EppoClientTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -358,6 +358,48 @@ private function loadTestCases(): array
return $tests;
}

/**
* @throws EppoClientInitializationException
* @throws EppoClientException
*/
public function testGetConfiguration(): void
{
// Use the existing mock web server that serves flags-v1.json
$client = EppoClient::init(
'dummy',
self::$mockServer->serverAddress,
isGracefulMode: false,
throwOnFailedInit: true
);

// Get the configuration
$config = $client->getConfiguration();
$this->assertInstanceOf(Configuration::class, $config);

// Test getting an existing flag
$numericFlag = $config->getFlag('numeric_flag');
$this->assertNotNull($numericFlag, 'numeric_flag should exist in configuration');
$this->assertEquals('numeric_flag', $numericFlag->key);
$this->assertTrue($numericFlag->enabled);
$this->assertEquals('NUMERIC', $numericFlag->variationType->value);

// Test getting a non-existent flag
$nonExistentFlag = $config->getFlag('non_existent_flag');
$this->assertNull($nonExistentFlag, 'non_existent_flag should return null');

// Test getting a disabled flag
$disabledFlag = $config->getFlag('disabled_flag');
$this->assertNotNull($disabledFlag, 'disabled_flag should exist in configuration');
$this->assertEquals('disabled_flag', $disabledFlag->key);
$this->assertFalse($disabledFlag->enabled);

// Test getting an empty flag
$emptyFlag = $config->getFlag('empty_flag');
$this->assertNotNull($emptyFlag, 'empty_flag should exist in configuration');
$this->assertEquals('empty_flag', $emptyFlag->key);
$this->assertTrue($emptyFlag->enabled);
}

/**
* @throws EppoClientInitializationException
* @throws EppoClientException
Expand Down