package signal

import (
	"testing"
)

func TestMultiNotifyDoesntCrash(t *testing.T) {
	sig := New(make(chan struct{}))
	sig.Notify()
	sig.Notify()
	// If code has reached here without crashing, the test has passed.
}

func TestWait(t *testing.T) {
	sig := New(make(chan struct{}))
	sig.Notify()
	select {
	case <-sig.Wait():
		// Test succeeds
		return
	default:
		// sig.Wait() should have been read from, because sig.Notify() wrote to it.
		t.Fail()
	}
}