UndefinedLivewirePropertySolutionProviderTest.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. namespace Facade\Ignition\Tests\Solutions;
  3. use Facade\Ignition\SolutionProviders\UndefinedLivewirePropertySolutionProvider;
  4. use Facade\Ignition\Tests\stubs\Components\TestLivewireComponent;
  5. use Facade\Ignition\Tests\TestCase;
  6. use Facade\Ignition\Tests\TestClasses\FakeLivewireManager;
  7. use Livewire\Exceptions\PropertyNotFoundException;
  8. class UndefinedLivewirePropertySolutionProviderTest extends TestCase
  9. {
  10. /** @test */
  11. public function it_can_solve_an_unknown_livewire_property()
  12. {
  13. FakeLivewireManager::setUp()->addAlias('test-livewire-component', TestLivewireComponent::class);
  14. $exception = new PropertyNotFoundException('strng', 'test-livewire-component');
  15. $canSolve = app(UndefinedLivewirePropertySolutionProvider::class)->canSolve($exception);
  16. [$firstSolution, $secondSolution] = app(UndefinedLivewirePropertySolutionProvider::class)->getSolutions($exception);
  17. $this->assertTrue($canSolve);
  18. $this->assertSame('Possible typo Facade\Ignition\Tests\stubs\Components\TestLivewireComponent::$strng', $firstSolution->getSolutionTitle());
  19. $this->assertSame('Did you mean `$string`?', $firstSolution->getSolutionDescription());
  20. $this->assertSame('Possible typo Facade\Ignition\Tests\stubs\Components\TestLivewireComponent::$strng', $secondSolution->getSolutionTitle());
  21. $this->assertSame('Did you mean `$stringable`?', $secondSolution->getSolutionDescription());
  22. }
  23. /** @test */
  24. public function it_can_solve_an_unknown_livewire_computed_property()
  25. {
  26. FakeLivewireManager::setUp()->addAlias('test-livewire-component', TestLivewireComponent::class);
  27. $exception = new PropertyNotFoundException('compted', 'test-livewire-component');
  28. $canSolve = app(UndefinedLivewirePropertySolutionProvider::class)->canSolve($exception);
  29. [$solution] = app(UndefinedLivewirePropertySolutionProvider::class)->getSolutions($exception);
  30. $this->assertTrue($canSolve);
  31. $this->assertSame('Possible typo Facade\Ignition\Tests\stubs\Components\TestLivewireComponent::$compted', $solution->getSolutionTitle());
  32. $this->assertSame('Did you mean `$computed`?', $solution->getSolutionDescription());
  33. }
  34. }