Update
This commit is contained in:
73
tests/Feature/PagesSetupControllerTest.php
Normal file
73
tests/Feature/PagesSetupControllerTest.php
Normal 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' => '[{"type":"text","name":"title","label":"Title","required":true,"store":"title"}]',
|
||||
]);
|
||||
|
||||
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' => '[{"type":"text","name":"title","label":"Title","required":true,"store":"title"}]',
|
||||
]);
|
||||
|
||||
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' => '[{"type":"text","name":"title","label":"Updated Title","required":true,"store":"title"}]',
|
||||
]));
|
||||
|
||||
expect($response->getStatusCode())->toBe(302);
|
||||
|
||||
$config = app(Config::class);
|
||||
|
||||
expect($config->checkConfig('plugin.pages.config'))
|
||||
->toBeTrue()
|
||||
->and($config->checkConfig('plugin.pages.fields'))
|
||||
->toBeTrue();
|
||||
});
|
||||
Reference in New Issue
Block a user