@@ -1254,16 +1254,37 @@ func TestInsecureStatefulSessionIdManager(t *testing.T) {
12541254}
12551255})
12561256
1257- t .Run ("Terminate rejects non-existent session ID" , func (t * testing.T ) {
1257+ t .Run ("Terminate is idempotent for non-existent session ID" , func (t * testing.T ) {
12581258manager := & InsecureStatefulSessionIdManager {}
12591259fakeSessionID := "mcp-session-ffffffff-ffff-ffff-ffff-ffffffffffff"
12601260
1261- _ , err := manager .Terminate (fakeSessionID )
1262- if err = = nil {
1263- t .Error ("Expected error when terminating non-existent session" )
1261+ isNotAllowed , err := manager .Terminate (fakeSessionID )
1262+ if err ! = nil {
1263+ t .Errorf ("Expected no error when terminating non-existent session, got: %v" , err )
12641264}
1265- if ! strings .Contains (err .Error (), "session not found" ) {
1266- t .Errorf ("Expected 'session not found' error, got: %v" , err )
1265+ if isNotAllowed {
1266+ t .Error ("Expected isNotAllowed to be false" )
1267+ }
1268+ })
1269+
1270+ t .Run ("Terminate is idempotent for already-terminated session" , func (t * testing.T ) {
1271+ manager := & InsecureStatefulSessionIdManager {}
1272+ sessionID := manager .Generate ()
1273+
1274+ isNotAllowed , err := manager .Terminate (sessionID )
1275+ if err != nil {
1276+ t .Errorf ("Expected no error on first termination, got: %v" , err )
1277+ }
1278+ if isNotAllowed {
1279+ t .Error ("Expected termination to be allowed" )
1280+ }
1281+
1282+ isNotAllowed , err = manager .Terminate (sessionID )
1283+ if err != nil {
1284+ t .Errorf ("Expected no error on second termination (idempotent), got: %v" , err )
1285+ }
1286+ if isNotAllowed {
1287+ t .Error ("Expected termination to be allowed on retry" )
12671288}
12681289})
12691290
0 commit comments