package transport_test import ( "fmt" "sync" "testing" "iop/apps/node/internal/transport" ) func TestSession_RegisterCancel_CancelRun(t *testing.T) { sess := &transport.Session{} called := false sess.RegisterCancel("run-1", func() { called = true }) sess.CancelRun("run-1") if !called { t.Fatal("cancel function was not called") } } func TestSession_DeregisterCancel(t *testing.T) { sess := &transport.Session{} called := false sess.RegisterCancel("run-1", func() { called = true }) sess.DeregisterCancel("run-1") sess.CancelRun("run-1") if called { t.Fatal("cancel function should not have been called after deregister") } } func TestSession_CancelRun_UnknownID(t *testing.T) { sess := &transport.Session{} sess.CancelRun("missing-run") } func TestSession_ConcurrentRegisterCancel(t *testing.T) { sess := &transport.Session{} var wg sync.WaitGroup for i := 0; i < 100; i++ { id := fmt.Sprintf("run-%d", i) wg.Add(1) go func(runID string) { defer wg.Done() sess.RegisterCancel(runID, func() {}) sess.CancelRun(runID) sess.DeregisterCancel(runID) }(id) } wg.Wait() }