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