-
Notifications
You must be signed in to change notification settings - Fork 184
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
solve missing mix manifest error (#317)
- Loading branch information
1 parent
b364db8
commit 03b581a
Showing
3 changed files
with
58 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
25 changes: 25 additions & 0 deletions
25
src/SolutionProviders/MissingMixManifestSolutionProvider.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
<?php | ||
|
||
|
||
namespace Facade\Ignition\SolutionProviders; | ||
|
||
use Facade\IgnitionContracts\BaseSolution; | ||
use Facade\IgnitionContracts\HasSolutionsForThrowable; | ||
use Illuminate\Support\Str; | ||
use Throwable; | ||
|
||
class MissingMixManifestSolutionProvider implements HasSolutionsForThrowable | ||
{ | ||
public function canSolve(Throwable $throwable): bool | ||
{ | ||
return Str::startsWith($throwable->getMessage(), 'The Mix manifest does not exist'); | ||
} | ||
|
||
public function getSolutions(Throwable $throwable): array | ||
{ | ||
return [ | ||
BaseSolution::create('Missing Mix Manifest File') | ||
->setSolutionDescription('Did you forget to run `npm install && npm run dev`?'), | ||
]; | ||
} | ||
} |
31 changes: 31 additions & 0 deletions
31
tests/Solutions/MixManifestNotFoundSolutionProviderTest.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
<?php | ||
|
||
|
||
namespace Facade\Ignition\Tests\Solutions; | ||
|
||
use Exception; | ||
use Facade\Ignition\SolutionProviders\MissingMixManifestSolutionProvider; | ||
use Facade\Ignition\Tests\TestCase; | ||
use Illuminate\Support\Str; | ||
|
||
class MixManifestNotFoundSolutionProviderTest extends TestCase | ||
{ | ||
/** @test */ | ||
public function it_can_solve_a_missing_mix_manifest_exception() | ||
{ | ||
$canSolve = app(MissingMixManifestSolutionProvider::class) | ||
->canSolve(new Exception('The Mix manifest does not exist.')); | ||
|
||
$this->assertTrue($canSolve); | ||
} | ||
|
||
/** @test */ | ||
public function it_can_recommend_running_npm_install_and_npm_run_dev() | ||
{ | ||
/** @var \Facade\IgnitionContracts\Solution $solution */ | ||
$solution = app(MissingMixManifestSolutionProvider::class) | ||
->getSolutions(new Exception('The Mix manifest does not exist.'))[0]; | ||
|
||
$this->assertTrue(Str::contains($solution->getSolutionDescription(), 'Did you forget to run `npm install && npm run dev`?')); | ||
} | ||
} |