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