Skip to content

Commit

Permalink
Support of Momentum Trail from @lepikhinb
Browse files Browse the repository at this point in the history
  • Loading branch information
slavarazum committed Aug 24, 2023
1 parent 912205b commit fc3a32c
Show file tree
Hide file tree
Showing 3 changed files with 77 additions and 0 deletions.
28 changes: 28 additions & 0 deletions src/Discovers/TrailDiscover.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<?php

namespace Qruto\Flora\Discovers;

use Illuminate\Container\Container;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Blade;
use Qruto\Flora\Run;
use function class_exists;
use function config;

class TrailDiscover implements PackageDiscover
{
public function exists(): bool
{
return collect(Artisan::all())->has('trail:generate');
}

public function instruction(): Instruction
{
$command = fn (Run $run): Run => $run->command('trail:generate');

return new Instruction(
install: $command,
update: $command,
);
}
}
2 changes: 2 additions & 0 deletions src/FloraServiceProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
use Qruto\Flora\Contracts\ChainVault as ChainVaultContract;
use Qruto\Flora\Discovers\HorizonDiscover;
use Qruto\Flora\Discovers\IdeHelperDiscover;
use Qruto\Flora\Discovers\TrailDiscover;
use Qruto\Flora\Discovers\TypeScriptTransformerDiscover;
use Qruto\Flora\Discovers\VaporUiDiscover;
use Qruto\Flora\Enums\FloraType;
Expand Down Expand Up @@ -62,6 +63,7 @@ public function packageRegistered(): void
new HorizonDiscover(),
new IdeHelperDiscover(),
new TypeScriptTransformerDiscover(),
new TrailDiscover(),
]);
}

Expand Down
47 changes: 47 additions & 0 deletions tests/Discovers/TrailDiscoverTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
<?php

use Illuminate\Support\Facades\Artisan;
use Qruto\Flora\Actions\Artisan as ArtisanAction;
use Qruto\Flora\Console\Commands\PackageInstruction;
use Qruto\Flora\Enums\Environment;
use Qruto\Flora\Enums\FloraType;

uses(PackageInstruction::class);

beforeEach(function () {
Artisan::command('trail:generate', fn() => null);
});

it('successfully instruct trail:generate for local environment', function () {
$run = makeRunner();

$this->instructPackages(FloraType::Install, Environment::Local->value, $run);

$this->assertCount(1, $run->internal->getCollection());
$this->assertContainsOnlyInstancesOf(ArtisanAction::class, $run->internal->getCollection());
$this->assertEquals(
[
'trail:generate',
],
collect($run->internal->getCollection())
->map(fn ($action) => $action->name())
->toArray()
);
});

it('successfully instruct trail:generate for production environment', function () {
$run = makeRunner();

$this->instructPackages(FloraType::Install, Environment::Production->value, $run);

$this->assertCount(1, $run->internal->getCollection());
$this->assertContainsOnlyInstancesOf(ArtisanAction::class, $run->internal->getCollection());
$this->assertEquals(
[
'trail:generate',
],
collect($run->internal->getCollection())
->map(fn ($action) => $action->name())
->toArray()
);
});

0 comments on commit fc3a32c

Please sign in to comment.