DuskTestCase.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. namespace Tests;
  3. use Dcat\Admin\Models\Administrator;
  4. use Facebook\WebDriver\Chrome\ChromeOptions;
  5. use Facebook\WebDriver\Remote\DesiredCapabilities;
  6. use Facebook\WebDriver\Remote\RemoteWebDriver;
  7. use Laravel\Dusk\Browser;
  8. use Laravel\Dusk\TestCase as BaseTestCase;
  9. abstract class DuskTestCase extends BaseTestCase
  10. {
  11. use CreatesApplication,
  12. BasicTestCase;
  13. /**
  14. * @var Administrator
  15. */
  16. protected $user;
  17. protected $login = true;
  18. public function login(Browser $browser)
  19. {
  20. $browser->loginAs($this->getUser(), 'admin');
  21. }
  22. /**
  23. * Prepare for Dusk test execution.
  24. *
  25. * @beforeClass
  26. *
  27. * @return void
  28. */
  29. public static function prepare()
  30. {
  31. static::startChromeDriver();
  32. }
  33. /**
  34. * Create the RemoteWebDriver instance.
  35. *
  36. * @return \Facebook\WebDriver\Remote\RemoteWebDriver
  37. */
  38. protected function driver()
  39. {
  40. $options = (new ChromeOptions())->addArguments([
  41. '--disable-gpu',
  42. '--headless',
  43. '--window-size=1920,1080',
  44. ]);
  45. return RemoteWebDriver::create(
  46. 'http://localhost:9515',
  47. DesiredCapabilities::chrome()->setCapability(
  48. ChromeOptions::CAPABILITY,
  49. $options
  50. )
  51. );
  52. }
  53. }