Skip to content

Commit

Permalink
Merge pull request #18 from salahhusa9/Tests-Pipelines
Browse files Browse the repository at this point in the history
Tests pipelines
  • Loading branch information
salahhusa9 committed Nov 11, 2023
2 parents 6f3b804 + 80b145c commit 3a8760d
Show file tree
Hide file tree
Showing 10 changed files with 311 additions and 4 deletions.
4 changes: 4 additions & 0 deletions src/Pipelines/GitPipe.php
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@ public function handle($content, Closure $next)
}

return throw new \Exception('git checkout failed: '.$checkout);
} else {
if (is_callable($content['output'])) {
call_user_func($content['output'], 'Checkout success');
}
}

return $next($content);
Expand Down
12 changes: 8 additions & 4 deletions src/Pipelines/SeedersPipe.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,14 @@ public function handle($content, Closure $next)
call_user_func($content['output'], 'Seeding...');
}

Artisan::call('db:seed', [
'--class' => implode(' --class=', config('updater.seeders')),
'--force' => true,
]);
$classes = config('updater.seeders', []);

foreach ($classes as $class) {
Artisan::call('db:seed', [
'--class' => $class,
'--force' => true,
]);
}

if (is_callable($content['output'])) {
call_user_func($content['output'], 'Seeded!');
Expand Down
34 changes: 34 additions & 0 deletions tests/Pipelines/ArtisanCallCacheClearPipeTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<?php

namespace Salahhusa9\Updater\Tests\Pipelines;

use Illuminate\Support\Facades\Process;
use Salahhusa9\Updater\Pipelines\ArtisanCallCacheClearPipe;
use Salahhusa9\Updater\Tests\TestCase;

class ArtisanCallCacheClearPipeTest extends TestCase
{
public function test_run_handle()
{
Process::fake([
'*' => Process::result('cache:clear'),
]);

$messages = [
'Clearing cache...',
'Cache cleared!',
];

$content = [
'output' => function ($message) use ($messages) {
$this->assertTrue(in_array($message, $messages));
},
];

$next = function ($result) use ($content) {
$this->assertEquals($result, $content);
};

app()->make(ArtisanCallCacheClearPipe::class)->handle($content, $next);
}
}
34 changes: 34 additions & 0 deletions tests/Pipelines/ArtisanCallConfigClearPipeTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<?php

namespace Salahhusa9\Updater\Tests\Pipelines;

use Illuminate\Support\Facades\Process;
use Salahhusa9\Updater\Pipelines\ArtisanCallConfigClearPipe;
use Salahhusa9\Updater\Tests\TestCase;

class ArtisanCallConfigClearPipeTest extends TestCase
{
public function test_run_handle()
{
Process::fake([
'*' => Process::result('config:clear'),
]);

$messages = [
'Clearing config cache...',
'Config cache cleared!',
];

$content = [
'output' => function ($message) use ($messages) {
$this->assertTrue(in_array($message, $messages));
},
];

$next = function ($result) use ($content) {
$this->assertEquals($result, $content);
};

app()->make(ArtisanCallConfigClearPipe::class)->handle($content, $next);
}
}
34 changes: 34 additions & 0 deletions tests/Pipelines/ArtisanCallMigratePipeTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<?php

namespace Salahhusa9\Updater\Tests\Pipelines;

use Illuminate\Support\Facades\Process;
use Salahhusa9\Updater\Pipelines\ArtisanCallMigratePipe;
use Salahhusa9\Updater\Tests\TestCase;

class ArtisanCallMigratePipeTest extends TestCase
{
public function test_run_handle()
{
Process::fake([
'*' => Process::result('migrate'),
]);

$messages = [
'Migrating...',
'Migrated!',
];

$content = [
'output' => function ($message) use ($messages) {
$this->assertTrue(in_array($message, $messages));
},
];

$next = function ($result) use ($content) {
$this->assertEquals($result, $content);
};

app()->make(ArtisanCallMigratePipe::class)->handle($content, $next);
}
}
34 changes: 34 additions & 0 deletions tests/Pipelines/ArtisanCallOptimizePipeTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<?php

namespace Salahhusa9\Updater\Tests\Pipelines;

use Illuminate\Support\Facades\Process;
use Salahhusa9\Updater\Pipelines\ArtisanCallOptimizePipe;
use Salahhusa9\Updater\Tests\TestCase;

class ArtisanCallOptimizePipeTest extends TestCase
{
public function test_run_handle()
{
Process::fake([
'*' => Process::result('optimize'),
]);

$messages = [
'Optimizing...',
'Optimized!',
];

$content = [
'output' => function ($message) use ($messages) {
$this->assertTrue(in_array($message, $messages));
},
];

$next = function ($result) use ($content) {
$this->assertEquals($result, $content);
};

app()->make(ArtisanCallOptimizePipe::class)->handle($content, $next);
}
}
34 changes: 34 additions & 0 deletions tests/Pipelines/ArtisanCallRouteClearPipeTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<?php

namespace Salahhusa9\Updater\Tests\Pipelines;

use Illuminate\Support\Facades\Process;
use Salahhusa9\Updater\Pipelines\ArtisanCallRouteClearPipe;
use Salahhusa9\Updater\Tests\TestCase;

class ArtisanCallRouteClearPipeTest extends TestCase
{
public function test_run_handle()
{
Process::fake([
'*' => Process::result('route:clear'),
]);

$messages = [
'Clearing route cache...',
'Route cache cleared!',
];

$content = [
'output' => function ($message) use ($messages) {
$this->assertTrue(in_array($message, $messages));
},
];

$next = function ($result) use ($content) {
$this->assertEquals($result, $content);
};

app()->make(ArtisanCallRouteClearPipe::class)->handle($content, $next);
}
}
34 changes: 34 additions & 0 deletions tests/Pipelines/ArtisanCallViewClearPipeTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<?php

namespace Salahhusa9\Updater\Tests\Pipelines;

use Illuminate\Support\Facades\Process;
use Salahhusa9\Updater\Pipelines\ArtisanCallViewClearPipe;
use Salahhusa9\Updater\Tests\TestCase;

class ArtisanCallViewClearPipeTest extends TestCase
{
public function test_run_handle()
{
Process::fake([
'*' => Process::result('view:clear'),
]);

$messages = [
'Clearing view cache...',
'View cache cleared!',
];

$content = [
'output' => function ($message) use ($messages) {
$this->assertTrue(in_array($message, $messages));
},
];

$next = function ($result) use ($content) {
$this->assertEquals($result, $content);
};

app()->make(ArtisanCallViewClearPipe::class)->handle($content, $next);
}
}
62 changes: 62 additions & 0 deletions tests/Pipelines/GitPipeTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
<?php

namespace Salahhusa9\Updater\Tests\Pipelines;

use Illuminate\Support\Facades\Process;
use Salahhusa9\Updater\Pipelines\GitPipe;
use Salahhusa9\Updater\Tests\TestCase;

class GitPipeTest extends TestCase
{
public function test_run_handle()
{
Process::fake([
'*' => Process::result('1.0.0'), // this for return $version in getCurrentVersion()
]);

$messages = [
'Downloading version 1.0.0 ...',
'Checkout success',
];

$content = [
'output' => function ($message) use ($messages) {
$this->assertTrue(in_array($message, $messages));
},
'new_version' => '1.0.0',
];

$next = function ($result) use ($content) {
$this->assertEquals($result, $content);
};

app()->make(GitPipe::class)->handle($content, $next);
}

public function test_run_handle_with_error()
{
$this->expectException(\Exception::class);

Process::fake([
'*' => Process::result('error'), // this for throw new \Exception('git checkout failed: '.$checkout); becouse $checkout = Git::checkout($version); return error
]);

$messages = [
'Downloading version 1.0.0 ...',
'git checkout failed: error',
];

$content = [
'output' => function ($message) use ($messages) {
$this->assertTrue(in_array($message, $messages));
},
'new_version' => '1.0.0',
];

$next = function ($result) use ($content) {
$this->assertEquals($result, $content);
};

app()->make(GitPipe::class)->handle($content, $next);
}
}
33 changes: 33 additions & 0 deletions tests/Pipelines/SeedersPipeTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<?php

namespace Salahhusa9\Updater\Tests\Pipelines;

use Salahhusa9\Updater\Pipelines\SeedersPipe;
use Salahhusa9\Updater\Tests\TestCase;

class SeedersPipeTest extends TestCase
{
public function test_run_handle()
{
$messages = [
'Seeding...',
'Seeded!',
];

$content = [
'output' => function ($message) use ($messages) {
$this->assertTrue(in_array($message, $messages));
},
];

$next = function ($result) use ($content) {
$this->assertEquals($result, $content);
};

config()->set('updater.seeders', [

]);

app()->make(SeedersPipe::class)->handle($content, $next);
}
}

0 comments on commit 3a8760d

Please sign in to comment.