91 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
<?php
 | 
						|
 | 
						|
namespace Modules\Module;
 | 
						|
 | 
						|
use App\Setting\NamiSettings;
 | 
						|
use Illuminate\Foundation\Testing\DatabaseTransactions;
 | 
						|
use Livewire\Livewire;
 | 
						|
use Modules\Nami\Components\SettingView;
 | 
						|
use Tests\TestCase;
 | 
						|
use Zoomyboy\LaravelNami\Authentication\Auth;
 | 
						|
use Zoomyboy\LaravelNami\Fakes\LoginFake;
 | 
						|
 | 
						|
uses(TestCase::class);
 | 
						|
uses(DatabaseTransactions::class);
 | 
						|
 | 
						|
it('it renders page', function () {
 | 
						|
    test()->withoutExceptionHandling()->login()->loginNami();
 | 
						|
 | 
						|
    test()->get(route('setting.nami'))->assertSeeLivewire(SettingView::class);
 | 
						|
});
 | 
						|
 | 
						|
it('it displays active credentials', function () {
 | 
						|
    test()->withoutExceptionHandling()->login()->loginNami();
 | 
						|
    app(NamiSettings::class)->fill(['mglnr' => 903, 'password' => 'secret', 'default_group_id' => 55])->save();
 | 
						|
 | 
						|
    Livewire::test(SettingView::class)
 | 
						|
        ->assertSet('mglnr', 903)
 | 
						|
        ->assertSet('password', '')
 | 
						|
        ->assertSet('default_group_id', 55)
 | 
						|
        ->assertSee('Mitgliedsnummer')
 | 
						|
        ->assertSee('Standard-Gruppierung')
 | 
						|
        ->assertSee('Passwort')
 | 
						|
        ->assertDontSee('secret');
 | 
						|
});
 | 
						|
 | 
						|
it('it saves credentials', function () {
 | 
						|
    test()->withoutExceptionHandling()->login()->loginNami();
 | 
						|
    Auth::success(100, 'secretneu');
 | 
						|
    app(NamiSettings::class)->fill(['mglnr' => 903, 'password' => 'secret', 'default_group_id' => 55])->save();
 | 
						|
 | 
						|
    Livewire::test(SettingView::class)
 | 
						|
        ->set('mglnr', 100)
 | 
						|
        ->set('password', 'secretneu')
 | 
						|
        ->set('default_group_id', 80)
 | 
						|
        ->call('save')
 | 
						|
        ->assertHasNoErrors()
 | 
						|
        ->assertDispatched('success', 'Einstellungen gespeichert.');
 | 
						|
 | 
						|
    $this->assertEquals(100, app(NamiSettings::class)->mglnr);
 | 
						|
    $this->assertEquals('secretneu', app(NamiSettings::class)->password);
 | 
						|
    $this->assertEquals('80', app(NamiSettings::class)->default_group_id);
 | 
						|
});
 | 
						|
 | 
						|
it('validates fields', function ($name, $value, $errors) {
 | 
						|
    test()->withoutExceptionHandling()->login()->loginNami();
 | 
						|
    Auth::success(100, 'secretneu');
 | 
						|
    app(NamiSettings::class)->fill(['mglnr' => 903, 'password' => 'secret', 'default_group_id' => 55])->save();
 | 
						|
 | 
						|
    Livewire::test(SettingView::class)
 | 
						|
        ->set('mglnr', 100)
 | 
						|
        ->set('password', 'secretneu')
 | 
						|
        ->set('default_group_id', 80)
 | 
						|
        ->set($name, $value)
 | 
						|
        ->call('save')
 | 
						|
        ->assertHasErrors($errors)
 | 
						|
        ->assertNotDispatched('success');
 | 
						|
})->with([
 | 
						|
    ['password', '', ['password' => 'required']],
 | 
						|
    ['mglnr', '', ['mglnr' => 'required']],
 | 
						|
    ['default_group_id', '', ['default_group_id' => 'required']],
 | 
						|
    ['default_group_id', null, ['default_group_id' => 'required']],
 | 
						|
]);
 | 
						|
 | 
						|
it('it throws error when saving failed', function () {
 | 
						|
    test()->withoutExceptionHandling()->login()->loginNami();
 | 
						|
    app(NamiSettings::class)->fill(['mglnr' => 903, 'password' => 'secret', 'default_group_id' => 55])->save();
 | 
						|
 | 
						|
    Livewire::test(SettingView::class)
 | 
						|
        ->set('mglnr', 100)
 | 
						|
        ->set('password', 'secretneu')
 | 
						|
        ->set('default_group_id', 80)
 | 
						|
        ->call('save')
 | 
						|
        ->assertHasErrors(['mglnr' => 'Login fehlgeschlagen.'])
 | 
						|
        ->assertNotDispatched('success');
 | 
						|
 | 
						|
    $settings = app(NamiSettings::class)->refresh();
 | 
						|
    $this->assertEquals(903, $settings->mglnr);
 | 
						|
    $this->assertEquals('secret', $settings->password);
 | 
						|
    $this->assertEquals('55', $settings->default_group_id);
 | 
						|
});
 |