Files
aritmija/tests/Feature/PagesLanguagesTest.php
2026-05-13 17:11:09 +02:00

99 lines
2.9 KiB
PHP

<?php
use cPad\Plugins\Pages\Controllers\PagesController;
use cPad\Plugins\Pages\Services\Content;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\View;
use Klevze\ControlPanel\Facades\ActiveLanguage;
use Klevze\ControlPanel\Models\Content\ActiveLanguage as ActiveLanguageModel;
use Klevze\ControlPanel\Models\Content\Language;
use Klevze\ControlPanel\Services\Config;
beforeEach(function () {
View::addNamespace('plugin.page', base_path('packages/klevze/Plugins/Pages/Resources/views'));
Schema::dropIfExists('cpad');
Schema::dropIfExists('active_languages');
Schema::dropIfExists('languages');
Schema::create('languages', function (Blueprint $table) {
$table->char('iso', 2)->primary();
$table->string('name', 50);
$table->string('native', 50);
});
Schema::create('active_languages', function (Blueprint $table) {
$table->id('language_id');
$table->char('iso', 2)->unique();
$table->boolean('active')->default(false);
$table->unsignedTinyInteger('num');
$table->char('type', 16);
});
Schema::create('cpad', function (Blueprint $table) {
$table->string('keycode')->primary();
$table->text('value')->nullable();
});
Language::create(['iso' => 'sl', 'name' => 'Slovenian', 'native' => 'Slovenščina']);
Language::create(['iso' => 'en', 'name' => 'English', 'native' => 'English']);
ActiveLanguageModel::create(['iso' => 'sl', 'active' => true, 'num' => 1, 'type' => 'fp']);
ActiveLanguageModel::create(['iso' => 'en', 'active' => true, 'num' => 2, 'type' => 'fp']);
ActiveLanguage::clearCache();
\Klevze\ControlPanel\Models\System\Cpad::create([
'keycode' => 'plugin.pages.config',
'value' => '{}',
]);
});
it('loads fp languages for the pages create form', function () {
$controller = new class(app(Content::class), app(Config::class)) extends PagesController {
public function getFontIcons()
{
return [];
}
protected function getCategories()
{
return [];
}
protected function getCategoryTree()
{
return [];
}
protected function getPagesList()
{
return [];
}
public function getGalleryList(?int $id)
{
return [];
}
protected function getTranslation($content_id)
{
return [];
}
};
$view = $controller->Create();
$data = $view->getData();
expect($data['languages'])
->toHaveCount(2)
->and(collect($data['languages'])->pluck('iso')->all())
->toBe(['sl', 'en'])
->and($data['translationForm'])
->toBeArray()
->and($data['translationForm'])
->not->toBeEmpty()
->and($data['translationForm'][0]->name)
->toBe('title');
});