@@ -3584,9 +3584,17 @@ func TestSessionHandler_GetSessionObservingStatus_Success(t *testing.T) {
35843584
35853585 assert .Equal (t , http .StatusOK , w .Code )
35863586 mockService .AssertExpectations (t )
3587- assert .Contains (t , w .Body .String (), `"observed":10` )
3588- assert .Contains (t , w .Body .String (), `"in_process":5` )
3589- assert .Contains (t , w .Body .String (), `"pending":3` )
3587+
3588+ // Verify response format: serializer.Response{Data: status}
3589+ var response map [string ]interface {}
3590+ err := sonic .Unmarshal (w .Body .Bytes (), & response )
3591+ require .NoError (t , err )
3592+
3593+ data , ok := response ["data" ].(map [string ]interface {})
3594+ require .True (t , ok , "Should have data field" )
3595+ assert .Equal (t , float64 (10 ), data ["observed" ])
3596+ assert .Equal (t , float64 (5 ), data ["in_process" ])
3597+ assert .Equal (t , float64 (3 ), data ["pending" ])
35903598}
35913599
35923600func TestSessionHandler_GetSessionObservingStatus_EmptySessionID (t * testing.T ) {
@@ -3606,7 +3614,36 @@ func TestSessionHandler_GetSessionObservingStatus_EmptySessionID(t *testing.T) {
36063614 handler .GetSessionObservingStatus (c )
36073615
36083616 assert .Equal (t , http .StatusBadRequest , w .Code )
3609- assert .Contains (t , w .Body .String (), "session_id is required" )
3617+ // Now uses uuid.Parse which will return invalid UUID format error
3618+ var response map [string ]interface {}
3619+ err := sonic .Unmarshal (w .Body .Bytes (), & response )
3620+ require .NoError (t , err )
3621+ assert .NotEmpty (t , response ["error" ])
3622+ mockService .AssertNotCalled (t , "GetSessionObservingStatus" )
3623+ }
3624+
3625+ func TestSessionHandler_GetSessionObservingStatus_InvalidSessionID (t * testing.T ) {
3626+ gin .SetMode (gin .TestMode )
3627+
3628+ mockService := new (MockSessionService )
3629+ handler := NewSessionHandler (mockService , getMockSessionCoreClient ())
3630+
3631+ w := httptest .NewRecorder ()
3632+ c , _ := gin .CreateTestContext (w )
3633+ c .Params = gin.Params {
3634+ {Key : "session_id" , Value : "invalid-uuid" },
3635+ }
3636+ req , _ := http .NewRequest ("GET" , "/session/invalid-uuid/observing_status" , nil )
3637+ c .Request = req
3638+
3639+ handler .GetSessionObservingStatus (c )
3640+
3641+ assert .Equal (t , http .StatusBadRequest , w .Code )
3642+ // uuid.Parse will return invalid UUID format error
3643+ var response map [string ]interface {}
3644+ err := sonic .Unmarshal (w .Body .Bytes (), & response )
3645+ require .NoError (t , err )
3646+ assert .NotEmpty (t , response ["error" ])
36103647 mockService .AssertNotCalled (t , "GetSessionObservingStatus" )
36113648}
36123649
@@ -3633,6 +3670,11 @@ func TestSessionHandler_GetSessionObservingStatus_ServiceError(t *testing.T) {
36333670 handler .GetSessionObservingStatus (c )
36343671
36353672 assert .Equal (t , http .StatusInternalServerError , w .Code )
3636- assert .Contains (t , w .Body .String (), "database connection failed" )
3673+ // Verify response format: serializer.DBErr returns Response with error field
3674+ var response map [string ]interface {}
3675+ err := sonic .Unmarshal (w .Body .Bytes (), & response )
3676+ require .NoError (t , err )
3677+ assert .NotEmpty (t , response ["error" ])
3678+ assert .Contains (t , response ["error" ].(string ), "database connection failed" )
36373679 mockService .AssertExpectations (t )
36383680}
0 commit comments