mirror of
https://github.com/vitodeploy/vito.git
synced 2025-04-19 09:51:37 +00:00
test
This commit is contained in:
parent
165212fed2
commit
d16d3c1385
@ -34,7 +34,7 @@ public function connect(bool $sftp = false): void
|
||||
}
|
||||
}
|
||||
|
||||
public function exec(string|array $commands, string $log = '', ?int $siteId = null, ?bool $stream = false): string
|
||||
public function exec(string $command, string $log = '', ?int $siteId = null, ?bool $stream = false): string
|
||||
{
|
||||
if ($log) {
|
||||
$this->setLog($log, $siteId);
|
||||
@ -42,21 +42,19 @@ public function exec(string|array $commands, string $log = '', ?int $siteId = nu
|
||||
$this->log = null;
|
||||
}
|
||||
|
||||
if (! is_array($commands)) {
|
||||
$commands = [$commands];
|
||||
}
|
||||
|
||||
foreach ($commands as $command) {
|
||||
if (is_string($command)) {
|
||||
$this->commands[] = $command;
|
||||
} else {
|
||||
$this->commands[] = get_class($command);
|
||||
}
|
||||
}
|
||||
$this->commands[] = $command;
|
||||
|
||||
$output = $this->output ?? 'fake output';
|
||||
$this->log?->write($output);
|
||||
|
||||
if ($stream) {
|
||||
echo $output;
|
||||
ob_flush();
|
||||
flush();
|
||||
|
||||
return '';
|
||||
}
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
|
45
tests/Feature/ConsoleTest.php
Normal file
45
tests/Feature/ConsoleTest.php
Normal file
@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\Feature;
|
||||
|
||||
use App\Facades\SSH;
|
||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
use Tests\TestCase;
|
||||
|
||||
class ConsoleTest extends TestCase
|
||||
{
|
||||
use RefreshDatabase;
|
||||
|
||||
public function test_see_console(): void
|
||||
{
|
||||
$this->actingAs($this->user);
|
||||
|
||||
$this->get(route('servers.console', $this->server))
|
||||
->assertSeeText('Headless Console');
|
||||
}
|
||||
|
||||
public function test_run(): void
|
||||
{
|
||||
SSH::fake('fake output');
|
||||
|
||||
$this->actingAs($this->user);
|
||||
|
||||
$this->post(route('servers.console.run', $this->server), [
|
||||
'user' => 'vito',
|
||||
'command' => 'ls -la',
|
||||
])->assertStreamedContent('fake output');
|
||||
}
|
||||
|
||||
public function test_run_validation_error(): void
|
||||
{
|
||||
$this->actingAs($this->user);
|
||||
|
||||
$this->post(route('servers.console.run', $this->server), [
|
||||
'user' => 'vito',
|
||||
])->assertSessionHasErrors('command');
|
||||
|
||||
$this->post(route('servers.console.run', $this->server), [
|
||||
'command' => 'ls -la',
|
||||
])->assertSessionHasErrors('user');
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user