blob: c2aeea59d02e9923d0e644676882e5db2e65b9cb [file] [log] [blame]
package backend
import (
"context"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"go.skia.org/infra/go/sklog"
"go.skia.org/infra/go/testutils"
"go.skia.org/infra/perf/go/alerts"
alert_store "go.skia.org/infra/perf/go/alerts/sqlalertstore"
ag_store "go.skia.org/infra/perf/go/anomalygroup/sqlanomalygroupstore"
"go.skia.org/infra/perf/go/config"
"go.skia.org/infra/perf/go/culprit/notify"
culprit_store "go.skia.org/infra/perf/go/culprit/sqlculpritstore"
"go.skia.org/infra/perf/go/regression/sqlregression2store"
"go.skia.org/infra/perf/go/sql/sqltest"
subscription_store "go.skia.org/infra/perf/go/subscription/sqlsubscriptionstore"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials/insecure"
)
func setupTestApp(t *testing.T) *Backend {
db := sqltest.NewSpannerDBForTests(t, "backend")
alertStore, _ := alert_store.New(db)
configProvider, _ := alerts.NewConfigProvider(context.Background(), alertStore, 600)
anomalygroupStore, _ := ag_store.New(db, config.SpannerDataStoreType)
culpritStore, _ := culprit_store.New(db)
subscriptionStore, _ := subscription_store.New(db)
regressionStore, _ := sqlregression2store.New(db, configProvider)
configFile := testutils.TestDataFilename(t, "demo.json")
sklog.Infof("Config file: %s", configFile)
flags := &config.BackendFlags{
Port: ":0",
PromPort: ":0",
ConfigFilename: configFile,
}
b, err := New(flags, anomalygroupStore, culpritStore, subscriptionStore, regressionStore, &notify.DefaultCulpritNotifier{})
require.NoError(t, err)
ch := make(chan interface{})
go func() {
err := b.ServeGRPC()
assert.NoError(t, err)
ch <- nil
}()
t.Cleanup(func() {
b.Cleanup()
<-ch
})
return b
}
func TestAppSetup(t *testing.T) {
b := setupTestApp(t)
_, err := grpc.Dial(b.grpcPort, grpc.WithTransportCredentials(insecure.NewCredentials()))
require.NoError(t, err)
}