diff --git a/tests/Browser/CreateWithInlineRelationButtonTest.php b/tests/Browser/CreateWithInlineRelationButtonTest.php index 0d59e971..96833387 100644 --- a/tests/Browser/CreateWithInlineRelationButtonTest.php +++ b/tests/Browser/CreateWithInlineRelationButtonTest.php @@ -9,6 +9,7 @@ use Database\Factories\PostFactory; use Database\Factories\ShipFactory; use Laravel\Dusk\Browser; +use Laravel\Nova\Testing\Browser\Components\Controls\RelationSelectControlComponent; use Laravel\Nova\Testing\Browser\Components\FormComponent; use Laravel\Nova\Testing\Browser\Components\SearchInputComponent; use Laravel\Nova\Testing\Browser\Pages\Attach; @@ -92,17 +93,21 @@ public function test_morph_to_resource_can_be_created_with_attaching_file_to_par $this->browse(function (Browser $browser) { PostFactory::new()->create(); - $browser->loginAs(1) + $browser->loginAs(4) ->visit(new Create('comments')) ->within(new FormComponent(), function ($browser) { $browser->select('@commentable-type', 'posts') - ->pause(500) ->runInlineCreate('commentable', function ($browser) { $browser->waitForText('Create User Post') - ->selectRelation('users', 1) ->type('@title', 'Test Post') ->type('@body', 'Test Post Body') - ->attach('@attachment', __DIR__.'/Fixtures/Document.pdf'); + ->whenAvailable(new RelationSelectControlComponent('users'), function ($browser) { + $browser->assertSelected('', 4) + ->select('', 1); + }) + ->whenAvailable('@attachment', function ($browser) { + $browser->attach('', __DIR__.'/Fixtures/Document.pdf'); + }); }); }) ->waitForText('The user post was created!') @@ -117,6 +122,13 @@ public function test_morph_to_resource_can_be_created_with_attaching_file_to_par $comment = Comment::with('commentable')->latest()->first(); $this->assertNull($comment->attachment); $this->assertNotNull($comment->commentable->attachment); + + $this->assertDatabaseHas('posts', [ + 'user_id' => 1, + 'title' => 'Test Post', + 'body' => 'Test Post Body', + 'attachment' => $comment->commentable->attachment, + ]); }); } @@ -127,16 +139,19 @@ public function test_morph_to_resource_can_be_created_with_attaching_file_to_chi $this->browse(function (Browser $browser) { PostFactory::new()->create(); - $browser->loginAs(1) + $browser->loginAs(4) ->visit(new Create('comments')) ->within(new FormComponent(), function ($browser) { $browser->select('@commentable-type', 'posts') ->pause(500) ->runInlineCreate('commentable', function ($browser) { $browser->waitForText('Create User Post') - ->selectRelation('users', 1) ->type('@title', 'Test Post') - ->type('@body', 'Test Post Body'); + ->type('@body', 'Test Post Body') + ->whenAvailable(new RelationSelectControlComponent('users'), function ($browser) { + $browser->assertSelected('', 4) + ->select('', 1); + }); }); }) ->waitForText('The user post was created!') @@ -152,6 +167,13 @@ public function test_morph_to_resource_can_be_created_with_attaching_file_to_chi $comment = Comment::with('commentable')->latest()->first(); $this->assertNotNull($comment->attachment); $this->assertNull($comment->commentable->attachment); + + $this->assertDatabaseHas('posts', [ + 'user_id' => 1, + 'title' => 'Test Post', + 'body' => 'Test Post Body', + 'attachment' => null, + ]); }); } @@ -166,13 +188,13 @@ public function test_searchable_morph_to_resource_can_be_cancelled_and_use_diffe ->visit(new Create('comments')) ->within(new FormComponent(), function ($browser) { $browser->select('@commentable-type', 'posts') - ->pause(500) - ->runInlineCreate('commentable', function ($browser) { - $browser->waitForText('Create User Post') - ->type('@title', 'Test Post') - ->type('@body', 'Test Post Body') - ->searchFirstRelation('users', 1); - }); + ->pause(500) + ->runInlineCreate('commentable', function ($browser) { + $browser->waitForText('Create User Post') + ->type('@title', 'Test Post') + ->type('@body', 'Test Post Body') + ->searchFirstRelation('users', 1); + }); }) ->waitForText('The user post was created!') ->within(new FormComponent(), function ($browser) use ($post) { @@ -185,6 +207,13 @@ public function test_searchable_morph_to_resource_can_be_cancelled_and_use_diffe ->click('@cancel-create-button'); $browser->blank(); + + $this->assertDatabaseHas('posts', [ + 'user_id' => 1, + 'title' => 'Test Post', + 'body' => 'Test Post Body', + 'attachment' => null, + ]); }); } diff --git a/tests/Browser/DateFieldTest.php b/tests/Browser/DateFieldTest.php index 9b2dc298..a41d9b8e 100644 --- a/tests/Browser/DateFieldTest.php +++ b/tests/Browser/DateFieldTest.php @@ -117,7 +117,7 @@ public function test_it_can_clear_the_date_field_value() $this->browse(function (Browser $browser) use ($person) { $browser->loginAs(1) ->visit(new Update('people', $person->getKey())) - ->type('@date_of_birth', '') + ->typeOnDate('@date_of_birth', '') ->update() ->waitForText('The person was updated!'); diff --git a/tests/Browser/DateTimeFieldTest.php b/tests/Browser/DateTimeFieldTest.php index 400cbdbc..992b4a9f 100644 --- a/tests/Browser/DateTimeFieldTest.php +++ b/tests/Browser/DateTimeFieldTest.php @@ -143,7 +143,7 @@ public function test_can_reset_datetime_input() $browser->loginAs(1) ->visit(new Update('ships', $ship->id)) - ->type('@departed_at', '') + ->typeOnDate('@departed_at', '') ->update() ->waitForText('The ship was updated!'); diff --git a/tests/Browser/DependentBelongsToManyFieldTest.php b/tests/Browser/DependentBelongsToManyFieldTest.php new file mode 100644 index 00000000..9dca321d --- /dev/null +++ b/tests/Browser/DependentBelongsToManyFieldTest.php @@ -0,0 +1,28 @@ +browse(function (Browser $browser) { + $browser->loginAs(1) + ->visit(new Attach('users', 1, 'books', 'personalBooks')) + ->within(new FormComponent(), function ($browser) { + $browser->assertSee('Attach Book') + ->assertSeeIn('p.help-text', 'Price starts from $0-$99') + ->within(new RelationSelectControlComponent('attachable'), function ($browser) { + $browser->select('', 1); + })->pause(500) + ->assertSeeIn('p.help-text', 'Price starts from $10-$199'); + }); + }); + } +} diff --git a/tests/Browser/DependentBooleanGroupFieldTest.php b/tests/Browser/DependentBooleanGroupFieldTest.php index ad1f218b..247cb553 100644 --- a/tests/Browser/DependentBooleanGroupFieldTest.php +++ b/tests/Browser/DependentBooleanGroupFieldTest.php @@ -94,11 +94,11 @@ public function test_it_can_apply_value_from_field_dependencies() $browser->whenAvailable('input[type="checkbox"][name="selected"]', function ($browser) { $browser->assertNotChecked(''); }) - ->whenAvailable('input[type="checkbox"][id="boolean-default-boolean-field"]', function ($browser) { - $browser->check('')->pause(2000); - }) - ->assertChecked('input[type="checkbox"][name="selected"]') - ->assertChecked('input[type="checkbox"][id="boolean-default-boolean-field"]'); + ->whenAvailable('input[type="checkbox"][id="boolean-default-boolean-field"]', function ($browser) { + $browser->check('')->pause(2000); + }) + ->assertChecked('input[type="checkbox"][name="selected"]') + ->assertChecked('input[type="checkbox"][id="boolean-default-boolean-field"]'); }); }); diff --git a/tests/Browser/DependentFieldTest.php b/tests/Browser/DependentFieldTest.php index ad2f44f0..debce5f2 100644 --- a/tests/Browser/DependentFieldTest.php +++ b/tests/Browser/DependentFieldTest.php @@ -203,24 +203,24 @@ public function test_it_can_apply_cascading_depends_on_changes() ->within(new IndexComponent('captains'), function ($browser) { $browser->runStandaloneAction('fields-action', function ($browser) { $browser->waitFor('@select_1') - ->assertMissing('@select_2') - ->assertMissing('@select_3') - ->select('@select_1', 'show') - ->waitFor('@select_2') - ->assertMissing('@select_3') - ->select('@select_2', 'show') - ->waitFor('@select_3') - ->select('@select_3', 'show') - ->select('@select_1', 'hide') - ->pause(1000) - ->assertMissing('@select_2') - ->assertMissing('@select_3') - ->select('@select_1', 'show') - ->pause(1000) - ->assertVisible('@select_2') - ->assertSelected('@select_2', 'show') - ->assertVisible('@select_3') - ->assertSelected('@select_3', 'show'); + ->assertMissing('@select_2') + ->assertMissing('@select_3') + ->select('@select_1', 'show') + ->waitFor('@select_2') + ->assertMissing('@select_3') + ->select('@select_2', 'show') + ->waitFor('@select_3') + ->select('@select_3', 'show') + ->select('@select_1', 'hide') + ->pause(1000) + ->assertMissing('@select_2') + ->assertMissing('@select_3') + ->select('@select_1', 'show') + ->pause(1000) + ->assertVisible('@select_2') + ->assertSelected('@select_2', 'show') + ->assertVisible('@select_3') + ->assertSelected('@select_3', 'show'); }); });