Create test for environment banner config

This commit is contained in:
2025-10-07 10:19:06 +02:00
parent 52344cda3b
commit 49fc02a7da

View File

@@ -0,0 +1,84 @@
<?php
namespace Chill\MainBundle\Tests\DependencyInjection;
use Chill\MainBundle\DependencyInjection\Configuration;
use PHPUnit\Framework\TestCase;
use Symfony\Component\Config\Definition\Processor;
use Symfony\Component\DependencyInjection\ContainerBuilder;
class ConfigurationTest extends TestCase
{
public function testTopBannerConfiguration(): void
{
$containerBuilder = new ContainerBuilder();
$configuration = new Configuration([], $containerBuilder);
$processor = new Processor();
// Test with top_banner configuration
$config = [
'chill_main' => [
'top_banner' => [
'text' => [
'fr' => 'Vous travaillez actuellement avec la version de pré-production de Chill.',
'nl' => 'Je werkte momenteel in de pré-productie versie van Chill.'
],
'color' => 'white',
'background-color' => 'red'
]
]
];
$processedConfig = $processor->processConfiguration($configuration, $config);
self::assertArrayHasKey('top_banner', $processedConfig);
self::assertArrayHasKey('text', $processedConfig['top_banner']);
self::assertArrayHasKey('fr', $processedConfig['top_banner']['text']);
self::assertArrayHasKey('nl', $processedConfig['top_banner']['text']);
self::assertSame('white', $processedConfig['top_banner']['color']);
self::assertSame('red', $processedConfig['top_banner']['background_color']);
}
public function testTopBannerConfigurationOptional(): void
{
$containerBuilder = new ContainerBuilder();
$configuration = new Configuration([], $containerBuilder);
$processor = new Processor();
// Test without top_banner configuration
$config = [
'chill_main' => []
];
$processedConfig = $processor->processConfiguration($configuration, $config);
// top_banner should not be present when not configured
self::assertArrayNotHasKey('top_banner', $processedConfig);
}
public function testTopBannerWithMinimalConfiguration(): void
{
$containerBuilder = new ContainerBuilder();
$configuration = new Configuration([], $containerBuilder);
$processor = new Processor();
// Test with minimal top_banner configuration (only text)
$config = [
'chill_main' => [
'top_banner' => [
'text' => [
'fr' => 'Test message'
]
]
]
];
$processedConfig = $processor->processConfiguration($configuration, $config);
self::assertArrayHasKey('top_banner', $processedConfig);
self::assertArrayHasKey('text', $processedConfig['top_banner']);
self::assertSame('Test message', $processedConfig['top_banner']['text']['fr']);
self::assertNull($processedConfig['top_banner']['color']);
self::assertNull($processedConfig['top_banner']['background_color']);
}
}