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(); });