Files
cunicu/pkg/signaling/backend_test.go
Steffen Vogel 62540ce929 use callbacks in signaling backends
Signed-off-by: Steffen Vogel <post@steffenvogel.de>
2022-07-27 13:39:18 +02:00

40 lines
877 B
Go

package signaling_test
import (
"net/url"
"riasc.eu/wice/pkg/signaling"
"riasc.eu/wice/pkg/signaling/inprocess"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
)
type readyHandler struct {
ready chan any
}
func (h *readyHandler) OnSignalingBackendReady(b signaling.Backend) {
close(h.ready)
}
var _ = It("can create new a new backend", func() {
uri, err := url.Parse("inprocess:")
Expect(err).To(Succeed(), "Failed to parse URL: %s", err)
h := &readyHandler{make(chan any)}
cfg := &signaling.BackendConfig{
URI: uri,
OnReady: []signaling.BackendReadyHandler{h},
}
b, err := signaling.NewBackend(cfg)
Expect(err).To(Succeed(), "Failed to create new backend: %s", err)
_, isInprocessBackend := b.(*inprocess.Backend)
Expect(isInprocessBackend).To(BeTrue())
// Wait until the backend is ready
Eventually(h.ready).Should(BeClosed())
})