156 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			156 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
| <?php
 | |
| 
 | |
| namespace Modules\Fileshare\Components;
 | |
| 
 | |
| use App\Fileshare\ConnectionTypes\NextcloudConnection;
 | |
| use App\Fileshare\ConnectionTypes\OwncloudConnection;
 | |
| use App\Fileshare\Models\Fileshare;
 | |
| use Illuminate\Foundation\Testing\DatabaseTransactions;
 | |
| use Livewire\Livewire;
 | |
| use Tests\FileshareTestCase;
 | |
| 
 | |
| uses(FileshareTestCase::class);
 | |
| uses(DatabaseTransactions::class);
 | |
| 
 | |
| it('it displays values', function () {
 | |
|     test()->withoutExceptionHandling()->login()->loginNami();
 | |
| 
 | |
|     Livewire::test(Form::class)
 | |
|         ->assertSet('name', '')
 | |
|         ->assertSee('Bezeichnung')
 | |
|         ->assertSee('Owncloud')
 | |
|         ->assertSee('Nextcloud')
 | |
|         ->assertSet('type', []);
 | |
| });
 | |
| 
 | |
| it('it displays owncloud connection values', function () {
 | |
|     test()->withoutExceptionHandling()->login()->loginNami();
 | |
| 
 | |
|     Livewire::test(Form::class)
 | |
|         ->set('typeClass', OwncloudConnection::class)
 | |
|         ->assertSet('typeClass', OwncloudConnection::class)
 | |
|         ->assertSee('Benutzer')
 | |
|         ->assertSee('URL')
 | |
|         ->assertSet('type.user', '')
 | |
|         ->assertSet('type.base_url', '')
 | |
|         ->assertSet('type.password', '');
 | |
| });
 | |
| 
 | |
| it('it saves owncloud connection', function () {
 | |
|     test()->login()->loginNami()->withUser('badenpowell', 'secret');
 | |
| 
 | |
|     Livewire::test(Form::class)
 | |
|         ->set('name', 'lala')
 | |
|         ->set('typeClass', OwncloudConnection::class)
 | |
|         ->set('type.user', 'badenpowell')
 | |
|         ->set('type.password', 'secret')
 | |
|         ->set('type.base_url', env('TEST_OWNCLOUD_DOMAIN'))
 | |
|         ->call('onSave')
 | |
|         ->assertDispatched('success', 'Verbindung erstellt.')
 | |
|         ->assertDispatched('refresh-page');
 | |
| 
 | |
|     $connection = Fileshare::firstOrFail();
 | |
|     $this->assertEquals('badenpowell', $connection->type->user);
 | |
|     $this->assertEquals('secret', $connection->type->password);
 | |
|     $this->assertEquals(env('TEST_OWNCLOUD_DOMAIN'), $connection->type->baseUrl);
 | |
|     $this->assertEquals('lala', $connection->name);
 | |
| });
 | |
| 
 | |
| it('it saves nextcloud connection', function () {
 | |
|     test()->login()->loginNami()->withUser('badenpowell', 'secret');
 | |
| 
 | |
|     Livewire::test(Form::class)
 | |
|         ->set('name', 'lala')
 | |
|         ->set('typeClass', NextcloudConnection::class)
 | |
|         ->set('type.user', 'badenpowell')
 | |
|         ->set('type.password', 'secret')
 | |
|         ->set('type.base_url', env('TEST_OWNCLOUD_DOMAIN'))
 | |
|         ->call('onSave')
 | |
|         ->assertDispatched('success', 'Verbindung erstellt.')
 | |
|         ->assertDispatched('refresh-page');
 | |
| 
 | |
|     $connection = Fileshare::firstOrFail();
 | |
|     $this->assertEquals('badenpowell', $connection->type->user);
 | |
|     $this->assertEquals('secret', $connection->type->password);
 | |
|     $this->assertEquals(env('TEST_OWNCLOUD_DOMAIN'), $connection->type->baseUrl);
 | |
|     $this->assertEquals('lala', $connection->name);
 | |
| });
 | |
| 
 | |
| it('checks nextcloud connection', function () {
 | |
|     test()->login()->loginNami()->withUser('badenpowell', 'secret');
 | |
| 
 | |
|     Livewire::test(Form::class)
 | |
|         ->set('name', 'lala')
 | |
|         ->set('typeClass', NextcloudConnection::class)
 | |
|         ->set('type.user', 'badenpowell')
 | |
|         ->set('type.password', 'wrong')
 | |
|         ->set('type.base_url', env('TEST_OWNCLOUD_DOMAIN'))
 | |
|         ->call('onSave')
 | |
|         ->assertHasErrors(['typeClass' => 'Verbindung fehlgeschlagen']);
 | |
| });
 | |
| 
 | |
| it('validates input', function ($attributes, $errors) {
 | |
|     test()->login()->loginNami()->withUser('badenpowell', 'secret');
 | |
| 
 | |
|     Livewire::test(Form::class)
 | |
|         ->set('name', 'lala')
 | |
|         ->set('typeClass', NextcloudConnection::class)
 | |
|         ->set('type.user', 'badenpowell')
 | |
|         ->set('type.password', 'wrong')
 | |
|         ->set('type.base_url', env('TEST_OWNCLOUD_DOMAIN'))
 | |
|         ->setArray($attributes)
 | |
|         ->call('onSave')
 | |
|         ->assertHasErrors($errors);
 | |
| })->with([
 | |
|     [['name' => ''], ['name' => 'Bezeichnung ist erforderlich.']],
 | |
|     [['typeClass' => null], ['typeClass' => 'Typ ist erforderlich.']],
 | |
| ]);
 | |
| 
 | |
| it('updates a connection', function () {
 | |
|     $this->withoutExceptionHandling()->login()->loginNami()->withUser('badenpowell', 'secretneu');
 | |
| 
 | |
|     $connection = Fileshare::factory()
 | |
|         ->type(OwncloudConnection::from(['user' => 'test', 'password' => 'secret', 'base_url' => env('TEST_OWNCLOUD_DOMAIN')]))
 | |
|         ->name('lokaler Server')
 | |
|         ->create();
 | |
| 
 | |
|     Livewire::test(Form::class, ['id' => $connection->id])
 | |
|         ->assertSet('name', 'lokaler Server')
 | |
|         ->assertSet('typeClass', OwncloudConnection::class)
 | |
|         ->assertSet('type.user', 'test')
 | |
|         ->assertSet('type.password', 'secret')
 | |
|         ->assertSet('type.base_url', env('TEST_OWNCLOUD_DOMAIN'))
 | |
|         ->setArray([
 | |
|             'name' => 'Lala',
 | |
|             'typeClass' => OwncloudConnection::class,
 | |
|             'type' => [
 | |
|                 'user' => 'badenpowell',
 | |
|                 'password' => 'secretneu',
 | |
|                 'base_url' => env('TEST_OWNCLOUD_DOMAIN'),
 | |
|             ]
 | |
|         ])
 | |
|         ->call('onSave')
 | |
|         ->assertDispatched('success', 'Verbindung aktualisiert.')
 | |
|         ->assertDispatched('refresh-page');
 | |
| 
 | |
|     $connection = Fileshare::firstOrFail();
 | |
|     $this->assertEquals('badenpowell', $connection->type->user);
 | |
|     $this->assertEquals('secretneu', $connection->type->password);
 | |
|     $this->assertEquals(env('TEST_OWNCLOUD_DOMAIN'), $connection->type->baseUrl);
 | |
|     $this->assertEquals('Lala', $connection->name);
 | |
| });
 | |
| 
 | |
| it('checks a connection while updating', function () {
 | |
|     $this->withoutExceptionHandling()->login()->loginNami()->withUser('badenpowell', 'secretneu');
 | |
| 
 | |
|     $connection = Fileshare::factory()
 | |
|         ->type(OwncloudConnection::from(['user' => 'test', 'password' => 'secret', 'base_url' => env('TEST_OWNCLOUD_DOMAIN')]))
 | |
|         ->name('lokaler Server')
 | |
|         ->create();
 | |
| 
 | |
|     Livewire::test(Form::class, ['id' => $connection->id])
 | |
|         ->set('type.password', 'wrong')
 | |
|         ->call('onSave')
 | |
|         ->assertHasErrors(['typeClass' => 'Verbindung fehlgeschlagen']);
 | |
| });
 |