This commit is contained in:
2026-05-13 17:11:09 +02:00
commit ea63897455
2785 changed files with 359868 additions and 0 deletions

View File

@@ -0,0 +1,73 @@
<?php
use cPad\Plugins\Pages\Controllers\SetupController;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\View;
use Klevze\ControlPanel\Models\System\Cpad;
use Klevze\ControlPanel\Services\Config;
beforeEach(function () {
View::addNamespace('plugin.page', base_path('packages/klevze/Plugins/Pages/Resources/views'));
Schema::dropIfExists('cpad');
Schema::create('cpad', function (Blueprint $table) {
$table->string('keycode')->primary();
$table->text('value')->nullable();
});
});
it('decodes stored pages setup config before rendering the setup view', function () {
Cpad::create([
'keycode' => 'plugin.pages.fields',
'value' => '[{&quot;type&quot;:&quot;text&quot;,&quot;name&quot;:&quot;title&quot;,&quot;label&quot;:&quot;Title&quot;,&quot;required&quot;:true,&quot;store&quot;:&quot;title&quot;}]',
]);
Cpad::create([
'keycode' => 'plugin.pages.config',
'value' => '{"folderDivider":150,"localeLinks":"Y"}',
]);
$view = app(SetupController::class)->Setup(Request::create('/cp/content/pages/setup', 'GET'));
expect($view->getData()['form'])
->toBeArray()
->and($view->getData()['form'][0]->name)
->toBe('title')
->and($view->getData()['setup'])
->toBeObject()
->and($view->getData()['setup']->folderDivider)
->toBe(150);
});
it('flushes and repopulates cached pages settings after saving setup', function () {
Cpad::create([
'keycode' => 'plugin.pages.fields',
'value' => '[{&quot;type&quot;:&quot;text&quot;,&quot;name&quot;:&quot;title&quot;,&quot;label&quot;:&quot;Title&quot;,&quot;required&quot;:true,&quot;store&quot;:&quot;title&quot;}]',
]);
Cpad::create([
'keycode' => 'plugin.pages.config',
'value' => '{"folderDivider":100,"localeLinks":"N"}',
]);
$controller = app(SetupController::class);
$response = $controller->Update(Request::create('/cp/content/pages/setup', 'POST', [
'setup' => [
'folderDivider' => 200,
'localeLinks' => 'Y',
],
'fields' => '[{&quot;type&quot;:&quot;text&quot;,&quot;name&quot;:&quot;title&quot;,&quot;label&quot;:&quot;Updated Title&quot;,&quot;required&quot;:true,&quot;store&quot;:&quot;title&quot;}]',
]));
expect($response->getStatusCode())->toBe(302);
$config = app(Config::class);
expect($config->checkConfig('plugin.pages.config'))
->toBeTrue()
->and($config->checkConfig('plugin.pages.fields'))
->toBeTrue();
});