create([ 'username' => 'tester', 'password' => Hash::make('secret123'), ]); $loginResponse = $this->postJson('/api/login', [ 'username' => 'tester', 'password' => 'secret123', ]); $loginResponse->assertStatus(200) ->assertJsonPath('message', 'Login successful') ->assertJsonStructure([ 'message', 'user' => ['id', 'name', 'username'], 'token', ]); $this->assertDatabaseHas('personal_access_tokens', [ 'tokenable_id' => $user->id, 'tokenable_type' => User::class, ]); $token = $loginResponse->json('token'); $logoutResponse = $this->withHeader('Authorization', 'Bearer ' . $token) ->postJson('/api/logout'); $logoutResponse->assertStatus(200) ->assertJsonPath('message', 'Logout successful'); $this->assertDatabaseCount('personal_access_tokens', 0); } }