Files
mesh-controller/internal/testbus/testbus_integration_test.go
T

46 lines
1020 B
Go

//go:build integration
package testbus
import (
"strings"
"testing"
"github.com/nats-io/nats.go"
)
func TestEveryTestHasABusOfItsOwn(t *testing.T) {
seen := map[string]bool{}
for i := 0; i < 2; i++ {
t.Run("one", func(t *testing.T) {
url := URL(t)
if seen[url] {
t.Fatalf("two tests were handed %s", url)
}
seen[url] = true
conn, err := nats.Connect(url)
if err != nil {
t.Fatal(err)
}
defer conn.Close()
js, err := conn.JetStream()
if err != nil {
t.Fatal(err)
}
if _, err := js.StreamInfo("EVENTS"); err == nil {
t.Fatal("a stream an earlier test made is here")
}
if _, err := js.AddStream(&nats.StreamConfig{Name: "EVENTS", Subjects: []string{"mesh.>"}}); err != nil {
t.Fatal(err)
}
})
}
// Asked twice, one test reaches one bus.
if a, b := URL(t), URL(t); a != b {
t.Errorf("one test was handed two buses: %s and %s", a, b)
}
if v := strings.Count(Version, "."); v != 2 {
t.Errorf("the server's release reads %q", Version)
}
}