vito/tests/Unit/SSHCommands/Website/CloneRepositoryCommandTest.php
Saeed Vaziry f70963d6bb
fix notification chanels and more tests (#108)
* fix notification chanels and more tests

* fix code style
2024-02-16 21:10:17 +01:00

47 lines
1.2 KiB
PHP

<?php
namespace Tests\Unit\SSHCommands\Website;
use App\SSHCommands\Website\CloneRepositoryCommand;
use Tests\TestCase;
class CloneRepositoryCommandTest extends TestCase
{
public function test_generate_command()
{
$command = new CloneRepositoryCommand('git@github.com-key:vitodeploy/vito.git', 'path', 'main', 'pk_path');
$expected = <<<EOD
echo "Host github.com-pk_path
Hostname github.com
IdentityFile=~/.ssh/pk_path" >> ~/.ssh/config
ssh-keyscan -H github.com >> ~/.ssh/known_hosts
rm -rf path
if ! git config --global core.fileMode false; then
echo 'VITO_SSH_ERROR' && exit 1
fi
if ! git clone -b main git@github.com-key:vitodeploy/vito.git path; then
echo 'VITO_SSH_ERROR' && exit 1
fi
if ! find path -type d -exec chmod 755 {} \;; then
echo 'VITO_SSH_ERROR' && exit 1
fi
if ! find path -type f -exec chmod 644 {} \;; then
echo 'VITO_SSH_ERROR' && exit 1
fi
if ! cd path && git config core.fileMode false; then
echo 'VITO_SSH_ERROR' && exit 1
fi
EOD;
$this->assertStringContainsString($expected, $command->content());
}
}