package lighthouse import ( "database/sql" "fmt" "testing" "time" "github.com/go-logr/logr" "github.com/stretchr/testify/suite" "edge-infra.dev/pkg/edge/api/testutils/seededpostgres" "edge-infra.dev/pkg/lib/logging" "edge-infra.dev/test/framework" ) const ( databaseHost = "localhost" databaseName = "lighthouse" databaseUser = "test" databasePassword = "12345" testProjectID = "ret-dev-test" testPubsubTopic = "test-stream" testPubsubSubscription = "test-subscription" insertOperation = "INSERT" ) //var databasePort int //testutils.GeneratePortNumber(5000, 9999) type Suite struct { *framework.Framework SeededPostgres *seededpostgres.SeededPostgres DB *sql.DB Host string Name string User string Password string Port string ProjectID string TopicID string SubscriptionID string AckDeadline time.Duration Log logr.Logger InsertOperation string } func SetupLighthouseSuite() (*Suite, error) { f := framework.New("lighthouse-test") sp, err := seededpostgres.NewWithUser(databaseName, databaseUser, databasePassword) if err != nil { return nil, err } db, err := sp.DB() if err != nil { _ = sp.Close() return nil, err } return &Suite{ Framework: f, SeededPostgres: sp, Host: databaseHost, Name: databaseName, User: databaseUser, Password: databasePassword, Port: fmt.Sprint(sp.Port()), DB: db, ProjectID: "ret-dev-test", TopicID: "test-stream", SubscriptionID: "test-subscription", AckDeadline: 25 * time.Second, Log: logging.NewLogger().WithName("lighthouse"), InsertOperation: insertOperation, }, nil } func TestLighthouse(t *testing.T) { s, err := SetupLighthouseSuite() if err != nil { t.Fatal(err) } suite.Run(t, s) t.Cleanup(func() { err := s.DB.Close() if err != nil { panic(err) } err = s.SeededPostgres.Close() if err != nil { panic(err) } }) }