get('/login'); $response->assertOk(); }); test('users can authenticate using the login screen', function () { $user = User::factory()->create(); $component = Volt::test('pages.auth.login') ->set('form.email', $user->email) ->set('form.password', 'password'); $component->call('login'); $component ->assertHasNoErrors() ->assertRedirect(route('dashboard', absolute: false)); $this->assertAuthenticated(); }); test('users can not authenticate with invalid password', function () { $user = User::factory()->create(); $component = Volt::test('pages.auth.login') ->set('form.email', $user->email) ->set('form.password', 'wrong-password'); $component->call('login'); $component ->assertHasErrors() ->assertNoRedirect(); $this->assertGuest(); }); test('dashboard redirects authenticated users to workspace', function () { $user = User::factory()->create(); $ws = Workspace::factory()->create(['owner_id' => $user->id]); WorkspaceMember::create([ 'workspace_id' => $ws->id, 'user_id' => $user->id, 'role' => 'owner', 'joined_at' => now(), ]); $user->update(['default_workspace_id' => $ws->id]); $this->actingAs($user) ->get('/dashboard') ->assertRedirect("/w/{$ws->ulid}"); }); test('users can logout', function () { $user = User::factory()->create(); $this->actingAs($user) ->post(route('logout')) ->assertRedirect('/'); $this->assertGuest(); });