package worker import "testing" func TestCloseSubscribersClosesEveryAlertStream(t *testing.T) { scheduler := &TaskScheduler{subscribers: map[uint]map[chan []byte]struct{}{}} first := scheduler.Subscribe(1) second := scheduler.Subscribe(1) third := scheduler.Subscribe(2) scheduler.closeSubscribers() for _, ch := range []chan []byte{first, second, third} { if _, open := <-ch; open { t.Fatal("subscriber channel remains open after scheduler shutdown") } } if len(scheduler.subscribers) != 0 { t.Fatalf("subscriber registry was not cleared: %#v", scheduler.subscribers) } // Handlers defer Unsubscribe. It must remain safe after shutdown has already // closed and removed every channel. scheduler.Unsubscribe(1, first) }