browse(function (Browser $browser) { $browser->visit('/') ->waitForText("Let's get started") ->assertSee("Let's get started"); }); } /** * Test that authenticated users can visit the dynamics index and see their dynamics. */ public function test_authenticated_users_can_visit_the_dynamics_index(): void { $user = User::factory()->create(); $dynamic = Dynamic::factory()->create([ 'name' => 'Dusk Automated Dynamic Index Test', ]); $dynamic->participants()->attach($user->id, ['role' => 'owner']); $this->browse(function (Browser $browser) use ($user, $dynamic) { $browser->loginAs($user) ->visit('/dynamics') ->waitForText('Your Dynamics') ->assertSee('Your Dynamics') ->assertSee($dynamic->name); }); // Clean up $dynamic->participants()->detach(); $dynamic->delete(); $user->delete(); } /** * Test that authenticated users can visit a dynamic show page. */ public function test_authenticated_users_can_visit_a_dynamic_show_page(): void { $user = User::factory()->create(); $dynamic = Dynamic::factory()->create([ 'name' => 'Dusk Dynamic Show Test', 'rules' => 'Rule 1: Always obey the automation.', ]); $dynamic->participants()->attach($user->id, ['role' => 'owner']); $this->browse(function (Browser $browser) use ($user, $dynamic) { $browser->loginAs($user) ->visit('/dynamics/' . $dynamic->uuid) ->waitForText($dynamic->name) ->assertSee($dynamic->name) ->assertSee($dynamic->rules); }); // Clean up $dynamic->participants()->detach(); $dynamic->delete(); $user->delete(); } /** * Test that authenticated users can visit a ledger show page. */ public function test_authenticated_users_can_visit_a_ledger_show_page(): void { $user = User::factory()->create(); $dynamic = Dynamic::factory()->create([ 'name' => 'Dusk Dynamic Ledger Show Test', ]); $dynamic->participants()->attach($user->id, ['role' => 'owner']); $ledger = Ledger::factory()->create([ 'dynamic_id' => $dynamic->id, 'name' => 'Dusk Ledger Test', 'score' => 42, 'rules' => 'Scores are tracked for Dusk automated verification.', ]); $this->browse(function (Browser $browser) use ($user, $dynamic, $ledger) { $browser->loginAs($user) ->visit('/dynamics/' . $dynamic->uuid . '/ledgers/' . $ledger->uuid) ->waitForText($ledger->name) ->assertSee($ledger->name) ->assertSee('Score: 42') ->assertSee($ledger->rules); }); // Clean up $ledger->delete(); $dynamic->participants()->detach(); $dynamic->delete(); $user->delete(); } /** * Test that authenticated users can visit a participant profile page. */ public function test_authenticated_users_can_visit_a_participant_profile_page(): void { $user = User::factory()->create(); $dynamic = Dynamic::factory()->create([ 'name' => 'Dusk Participant Profile Test', ]); $dynamic->participants()->attach($user->id, ['role' => 'owner', 'display_name' => 'The Master']); $otherUser = User::factory()->create(); $dynamic->participants()->attach($otherUser->id, ['role' => 'participant', 'display_name' => 'Bitch Bob']); $this->browse(function (Browser $browser) use ($user, $dynamic, $otherUser) { $browser->loginAs($user) ->visit('/dynamics/' . $dynamic->uuid . '/users/' . $otherUser->uuid) ->waitForText('Bitch Bob') ->assertSee('Bitch Bob') ->assertSee('participant'); }); // Clean up $dynamic->participants()->detach(); $dynamic->delete(); $user->delete(); $otherUser->delete(); } }