Snapshot of main at 9f39a6e1e (2026-11-02)
This commit is contained in:
commit
6ccf1792d7
2580 files changed
+1040202
No files matched your search
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\Feature;
|
||||
|
||||
use Illuminate\Support\Facades\File;
|
||||
use Tests\TestCase;
|
||||
|
||||
/**
|
||||
* When the platform folder has a config.php, that is the platform config, so config:merge merges new keys into
|
||||
* it: from config/<TIMEBANK_CONFIG>.php.example when that exists, else from the default template.
|
||||
*/
|
||||
class PlatformConfigMergeTest extends TestCase
|
||||
{
|
||||
private string $root;
|
||||
|
||||
protected function setUp(): void
|
||||
{
|
||||
parent::setUp();
|
||||
|
||||
$this->root = sys_get_temp_dir() . '/platform-config-merge-' . uniqid();
|
||||
File::makeDirectory($this->root);
|
||||
config(['app.platform_path' => $this->root]);
|
||||
File::put("{$this->root}/config.php", "<?php\n\nreturn [\n 'own_setting' => 'kept',\n];\n");
|
||||
}
|
||||
|
||||
protected function tearDown(): void
|
||||
{
|
||||
File::deleteDirectory($this->root);
|
||||
File::delete(File::glob(storage_path('config-backups/platform-config.php.backup.*')));
|
||||
parent::tearDown();
|
||||
}
|
||||
|
||||
public function test_a_platform_name_without_its_own_template_merges_from_the_default_template(): void
|
||||
{
|
||||
config(['app.timebank_config' => 'config-merge-test-platform']);
|
||||
|
||||
$this->artisan('config:merge', ['file' => 'config-merge-test-platform', '--force' => true])->assertExitCode(0);
|
||||
|
||||
$merged = include "{$this->root}/config.php";
|
||||
$this->assertSame('kept', $merged['own_setting']);
|
||||
$this->assertArrayHasKey('account_info', $merged);
|
||||
$this->assertFalse(File::exists(base_path('config/config-merge-test-platform.php')), 'nothing is written to config/');
|
||||
$this->assertCount(1, File::glob(storage_path('config-backups/platform-config.php.backup.*')), 'the backup is named after the platform folder');
|
||||
}
|
||||
|
||||
public function test_a_platform_with_its_own_template_merges_from_that_one(): void
|
||||
{
|
||||
config(['app.timebank_config' => 'timebank_cc']);
|
||||
$own = (include base_path('config/timebank_cc.php.example'))['mail']['system_admin']['email'];
|
||||
$default = (include base_path('config/timebank-default.php.example'))['mail']['system_admin']['email'];
|
||||
$this->assertNotSame($own, $default, 'the two templates must differ here for this test to mean something');
|
||||
|
||||
$this->artisan('config:merge', ['file' => 'timebank_cc', '--dry-run' => true])->assertExitCode(0);
|
||||
$this->assertSame("<?php\n\nreturn [\n 'own_setting' => 'kept',\n];\n", File::get("{$this->root}/config.php"), 'a dry run changes nothing');
|
||||
|
||||
$this->artisan('config:merge', ['file' => 'timebank_cc', '--force' => true])->assertExitCode(0);
|
||||
$this->assertSame($own, (include "{$this->root}/config.php")['mail']['system_admin']['email']);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user