MenuEditForm.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. namespace Tests\Browser\Components\Form;
  3. use Dcat\Admin\Models\Menu;
  4. use Laravel\Dusk\Browser;
  5. use Tests\Browser\Components\Form\Field\MultipleSelect2;
  6. use Tests\Browser\Components\Form\Field\Select2;
  7. use Tests\Browser\Components\Form\Field\Tree;
  8. class MenuEditForm extends MenuCreationForm
  9. {
  10. protected $id;
  11. protected $selector;
  12. public function __construct($id = null, $selector = 'form[method="POST"]')
  13. {
  14. if ($id && ! is_numeric($id)) {
  15. $selector = $id;
  16. $id = null;
  17. }
  18. $this->id = $id;
  19. $this->selector = $selector;
  20. }
  21. /**
  22. * 浏览器包含组件的断言
  23. *
  24. * @param Browser $browser
  25. * @return void
  26. */
  27. public function assert(Browser $browser)
  28. {
  29. $browser->assertSeeText(__('admin.submit'))
  30. ->assertSeeText(__('admin.reset'))
  31. ->within('@form', function (Browser $browser) {
  32. $browser
  33. ->assertSeeText('ID')
  34. ->assertSeeText(__('admin.parent_id'))
  35. ->assertSeeText(__('admin.title'))
  36. ->assertSeeText(__('admin.icon'))
  37. ->assertSeeText(__('admin.uri'))
  38. ->assertSeeText(__('admin.roles'))
  39. ->assertSeeText(__('admin.permission'))
  40. ->assertSeeText(__('admin.created_at'))
  41. ->assertSeeText(__('admin.updated_at'))
  42. ->assertSeeText(__('admin.selectall'))
  43. ->assertSeeText(__('admin.expand'))
  44. ->hasInput('title')
  45. ->hasInput('icon')
  46. ->hasInput('uri')
  47. ->is(new Tree('permissions'))
  48. ->is(new Select2('select[name="parent_id"]'))
  49. ->is(new MultipleSelect2('select[name="roles[]"]'));
  50. if (! $this->id) {
  51. return;
  52. }
  53. $menu = Menu::find($this->id);
  54. if ($menu) {
  55. $browser->assertSelected('parent_id', $menu->parent_id);
  56. }
  57. });
  58. }
  59. }