adrema/modules/Module/ModuleSettingsTest.php

52 lines
1.6 KiB
PHP

<?php
namespace Modules\Module;
use App\View\Setting;
use Illuminate\Foundation\Testing\DatabaseTransactions;
use Livewire\Livewire;
use Modules\Module\Components\SettingView;
use Tests\TestCase;
uses(TestCase::class);
uses(DatabaseTransactions::class);
it('it renders page', function () {
test()->withoutExceptionHandling()->login()->loginNami();
test()->get('/setting/module')->assertSeeLivewire(SettingView::class);
});
it('it displays acive modules', function () {
test()->withoutExceptionHandling()->login()->loginNami();
app(ModuleSettings::class)->fill(['modules' => ['bill']])->save();
Livewire::test(SettingView::class)
->assertSee('Module')
->assertSee('Ausbildung')
->assertSet('modules', fn ($modules) => $modules === ['bill'])
->assertSeeHtml('data-active');
});
it('it saves modules', function () {
test()->withoutExceptionHandling()->login()->loginNami();
app(ModuleSettings::class)->fill(['modules' => ['bill']])->save();
Livewire::test(SettingView::class)
->set('modules', ['bill', 'course'])
->call('save')
->assertDispatched('success', 'Einstellungen gespeichert.');
test()->assertEquals(['bill', 'course'], app(ModuleSettings::class)->modules);
});
it('test module must exist', function () {
test()->withoutExceptionHandling()->login()->loginNami();
app(ModuleSettings::class)->fill(['modules' => ['bill']])->save();
Livewire::test(SettingView::class)
->set('modules', ['bill', 'lala'])
->call('save')
->assertHasErrors('modules.1');
});