54 lines
892 B
Go
54 lines
892 B
Go
//go:build integration
|
|
// +build integration
|
|
|
|
package mongodb
|
|
|
|
import (
|
|
"context"
|
|
"log"
|
|
"math/rand"
|
|
"os"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/influxdata/telegraf/testutil"
|
|
)
|
|
|
|
var server *Server
|
|
|
|
func testSetup(_ *testing.M) {
|
|
connectionString := os.Getenv("MONGODB_URL")
|
|
if connectionString == "" {
|
|
connectionString = "mongodb://127.0.0.1:27017"
|
|
}
|
|
|
|
m := &MongoDB{
|
|
Log: testutil.Logger{},
|
|
Servers: []string{connectionString},
|
|
}
|
|
err := m.Init()
|
|
if err != nil {
|
|
log.Fatalf("Failed to connect to MongoDB: %v", err)
|
|
}
|
|
|
|
server = m.clients[0]
|
|
}
|
|
|
|
func testTeardown(_ *testing.M) {
|
|
err := server.client.Disconnect(context.Background())
|
|
if err != nil {
|
|
log.Fatalf("failed to disconnect: %v", err)
|
|
}
|
|
}
|
|
|
|
func TestMain(m *testing.M) {
|
|
// seed randomness for use with tests
|
|
rand.Seed(time.Now().UTC().UnixNano())
|
|
|
|
testSetup(m)
|
|
res := m.Run()
|
|
testTeardown(m)
|
|
|
|
os.Exit(res)
|
|
}
|