78 lines
2.3 KiB
PHP
78 lines
2.3 KiB
PHP
<?php
|
|
|
|
use App\Models\AdminPreset;
|
|
use App\Models\User;
|
|
use Database\Seeders\RolesAndPermissionsSeeder;
|
|
use Livewire\Volt\Volt as LivewireVolt;
|
|
use Tests\TestCase;
|
|
|
|
test('admin presets are linked in navigation', function () {
|
|
/** @var TestCase $this */
|
|
$this->seed(RolesAndPermissionsSeeder::class);
|
|
|
|
$admin = User::factory()->create(['is_active' => true]);
|
|
$admin->assignRole('admin');
|
|
|
|
$this->actingAs($admin)
|
|
->get(route('admin.presets.index'))
|
|
->assertSuccessful()
|
|
->assertSee('Voreinstellungen');
|
|
});
|
|
|
|
test('admin can create a preset', function () {
|
|
/** @var TestCase $this */
|
|
$this->seed(RolesAndPermissionsSeeder::class);
|
|
|
|
$admin = User::factory()->create(['is_active' => true]);
|
|
$admin->assignRole('admin');
|
|
$this->actingAs($admin);
|
|
|
|
LivewireVolt::test('admin.presets.create')
|
|
->set('key', 'press_releases.test_text')
|
|
->set('area', 'press_releases')
|
|
->set('type', 'text')
|
|
->set('label', 'Test Text')
|
|
->set('value', 'Ein Preset Text')
|
|
->set('payload', '{"source":"test"}')
|
|
->call('save')
|
|
->assertHasNoErrors()
|
|
->assertRedirect(route('admin.presets.index'));
|
|
|
|
$this->assertDatabaseHas('admin_presets', [
|
|
'key' => 'press_releases.test_text',
|
|
'area' => 'press_releases',
|
|
'type' => 'text',
|
|
'label' => 'Test Text',
|
|
'value' => 'Ein Preset Text',
|
|
]);
|
|
});
|
|
|
|
test('admin can edit a preset', function () {
|
|
/** @var TestCase $this */
|
|
$this->seed(RolesAndPermissionsSeeder::class);
|
|
|
|
$admin = User::factory()->create(['is_active' => true]);
|
|
$admin->assignRole('admin');
|
|
$this->actingAs($admin);
|
|
|
|
$preset = AdminPreset::factory()->create([
|
|
'key' => 'press_releases.edit_text',
|
|
'area' => 'press_releases',
|
|
'label' => 'Alter Text',
|
|
'value' => 'Alt',
|
|
]);
|
|
|
|
LivewireVolt::test('admin.presets.edit', ['id' => $preset->id])
|
|
->set('label', 'Neuer Text')
|
|
->set('value', 'Neu')
|
|
->set('isActive', false)
|
|
->call('save')
|
|
->assertHasNoErrors()
|
|
->assertRedirect(route('admin.presets.index'));
|
|
|
|
$preset->refresh();
|
|
|
|
expect($preset->label)->toBe('Neuer Text')
|
|
->and($preset->value)->toBe('Neu')
|
|
->and($preset->is_active)->toBeFalse();
|
|
});
|