mirror of
https://github.com/vitodeploy/vito.git
synced 2025-04-19 18:01: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) {
|
if ($log) {
|
||||||
$this->setLog($log, $siteId);
|
$this->setLog($log, $siteId);
|
||||||
@ -42,21 +42,19 @@ public function exec(string|array $commands, string $log = '', ?int $siteId = nu
|
|||||||
$this->log = null;
|
$this->log = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! is_array($commands)) {
|
$this->commands[] = $command;
|
||||||
$commands = [$commands];
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($commands as $command) {
|
|
||||||
if (is_string($command)) {
|
|
||||||
$this->commands[] = $command;
|
|
||||||
} else {
|
|
||||||
$this->commands[] = get_class($command);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$output = $this->output ?? 'fake output';
|
$output = $this->output ?? 'fake output';
|
||||||
$this->log?->write($output);
|
$this->log?->write($output);
|
||||||
|
|
||||||
|
if ($stream) {
|
||||||
|
echo $output;
|
||||||
|
ob_flush();
|
||||||
|
flush();
|
||||||
|
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
return $output;
|
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