@@ -180,6 +180,53 @@ async def test_should_throw_error_resuming_nonexistent_session(self, ctx: E2ETes
180180 with pytest .raises (Exception ):
181181 await ctx .client .resume_session ("non-existent-session-id" )
182182
183+ async def test_should_list_sessions (self , ctx : E2ETestContext ):
184+ # Create a couple of sessions
185+ session1 = await ctx .client .create_session ()
186+ session2 = await ctx .client .create_session ()
187+
188+ # List sessions and verify they're included
189+ sessions = await ctx .client .list_sessions ()
190+ assert isinstance (sessions , list )
191+
192+ session_ids = [s ["sessionId" ] for s in sessions ]
193+ assert session1 .session_id in session_ids
194+ assert session2 .session_id in session_ids
195+
196+ # Verify session metadata structure
197+ for session_data in sessions :
198+ assert "sessionId" in session_data
199+ assert "startTime" in session_data
200+ assert "modifiedTime" in session_data
201+ assert "isRemote" in session_data
202+ # summary is optional
203+ assert isinstance (session_data ["sessionId" ], str )
204+ assert isinstance (session_data ["startTime" ], str )
205+ assert isinstance (session_data ["modifiedTime" ], str )
206+ assert isinstance (session_data ["isRemote" ], bool )
207+
208+ async def test_should_delete_session (self , ctx : E2ETestContext ):
209+ # Create a session
210+ session = await ctx .client .create_session ()
211+ session_id = session .session_id
212+
213+ # Verify session exists in the list
214+ sessions = await ctx .client .list_sessions ()
215+ session_ids = [s ["sessionId" ] for s in sessions ]
216+ assert session_id in session_ids
217+
218+ # Delete the session
219+ await ctx .client .delete_session (session_id )
220+
221+ # Verify session no longer exists in the list
222+ sessions_after = await ctx .client .list_sessions ()
223+ session_ids_after = [s ["sessionId" ] for s in sessions_after ]
224+ assert session_id not in session_ids_after
225+
226+ # Verify we cannot resume the deleted session
227+ with pytest .raises (Exception ):
228+ await ctx .client .resume_session (session_id )
229+
183230 async def test_should_create_session_with_custom_tool (self , ctx : E2ETestContext ):
184231 # This test uses the low-level Tool() API to show that Pydantic is optional
185232 def get_secret_number_handler (invocation ):
0 commit comments