mirror of
https://github.com/vitodeploy/vito.git
synced 2025-04-19 18:01:37 +00:00
139 lines
3.6 KiB
PHP
139 lines
3.6 KiB
PHP
<?php
|
|
|
|
namespace Tests\Feature;
|
|
|
|
use App\Facades\SSH;
|
|
use App\Models\File;
|
|
use App\Web\Pages\Servers\FileManager\Index;
|
|
use App\Web\Pages\Servers\FileManager\Widgets\FilesList;
|
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
use Illuminate\Http\UploadedFile;
|
|
use Livewire\Livewire;
|
|
use Tests\TestCase;
|
|
|
|
class FileManagerTest extends TestCase
|
|
{
|
|
use RefreshDatabase;
|
|
|
|
public function test_see_files(): void
|
|
{
|
|
SSH::fake(<<<'EOF'
|
|
total 32
|
|
drwxr-xr-x 7 vito vito 4096 Feb 2 19:42 .
|
|
drwxr-xr-x 3 root root 4096 Feb 1 18:44 ..
|
|
drwx------ 3 vito vito 4096 Feb 1 18:45 .cache
|
|
drwxrwxr-x 3 vito vito 4096 Feb 1 18:45 .config
|
|
-rw-rw-r-- 1 vito vito 82 Feb 2 14:13 .gitconfig
|
|
drwxrwxr-x 3 vito vito 4096 Feb 1 18:45 .local
|
|
drwxr-xr-x 2 vito vito 4096 Feb 2 14:13 .ssh
|
|
drwxrwxr-x 3 vito vito 4096 Feb 2 21:25 test.vitodeploy.com
|
|
EOF
|
|
);
|
|
|
|
$this->actingAs($this->user);
|
|
|
|
$this->get(
|
|
Index::getUrl([
|
|
'server' => $this->server,
|
|
])
|
|
)
|
|
->assertSuccessful()
|
|
->assertSee('.cache')
|
|
->assertSee('.config');
|
|
}
|
|
|
|
public function test_upload_file(): void
|
|
{
|
|
SSH::fake();
|
|
|
|
$this->actingAs($this->user);
|
|
|
|
Livewire::test(FilesList::class, [
|
|
'server' => $this->server,
|
|
])
|
|
->callTableAction('upload', null, [
|
|
'file' => UploadedFile::fake()->create('test.txt'),
|
|
])
|
|
->assertSuccessful();
|
|
}
|
|
|
|
public function test_create_file(): void
|
|
{
|
|
SSH::fake(<<<'EOF'
|
|
total 3
|
|
drwxr-xr-x 7 vito vito 4096 Feb 2 19:42 .
|
|
drwxr-xr-x 3 root root 4096 Feb 1 18:44 ..
|
|
-rw-rw-r-- 1 vito vito 82 Feb 2 14:13 test.txt
|
|
EOF
|
|
);
|
|
|
|
$this->actingAs($this->user);
|
|
|
|
Livewire::test(FilesList::class, [
|
|
'server' => $this->server,
|
|
])
|
|
->callTableAction('new-file', null, [
|
|
'name' => 'test.txt',
|
|
'content' => 'Hello, world!',
|
|
])
|
|
->assertSuccessful();
|
|
|
|
$this->assertDatabaseHas('files', [
|
|
'name' => 'test.txt',
|
|
]);
|
|
}
|
|
|
|
public function test_create_directory(): void
|
|
{
|
|
SSH::fake(<<<'EOF'
|
|
total 3
|
|
drwxr-xr-x 7 vito vito 4096 Feb 2 19:42 .
|
|
drwxr-xr-x 3 root root 4096 Feb 1 18:44 ..
|
|
drwxr-xr-x 2 vito vito 4096 Feb 2 14:13 test
|
|
EOF
|
|
);
|
|
|
|
$this->actingAs($this->user);
|
|
|
|
Livewire::test(FilesList::class, [
|
|
'server' => $this->server,
|
|
])
|
|
->callTableAction('new-directory', null, [
|
|
'name' => 'test',
|
|
])
|
|
->assertSuccessful();
|
|
|
|
$this->assertDatabaseHas('files', [
|
|
'name' => 'test',
|
|
]);
|
|
}
|
|
|
|
public function test_download_file(): void
|
|
{
|
|
SSH::fake(<<<'EOF'
|
|
total 3
|
|
drwxr-xr-x 7 vito vito 4096 Feb 2 19:42 .
|
|
drwxr-xr-x 3 root root 4096 Feb 1 18:44 ..
|
|
-rw-rw-r-- 1 vito vito 82 Feb 2 14:13 test.txt
|
|
EOF
|
|
);
|
|
|
|
$this->actingAs($this->user);
|
|
|
|
$this->get(
|
|
Index::getUrl([
|
|
'server' => $this->server,
|
|
])
|
|
)->assertSuccessful();
|
|
|
|
$file = File::query()->where('name', 'test.txt')->firstOrFail();
|
|
|
|
Livewire::test(FilesList::class, [
|
|
'server' => $this->server,
|
|
])
|
|
->assertTableActionVisible('download', $file)
|
|
->callTableAction('download', $file)
|
|
->assertSuccessful();
|
|
}
|
|
}
|