customer/tests/integration/trashLogger_test.go
Pasha 34a88a3a70
Some checks failed
Lint / Lint (push) Failing after 1m2s
rename go.mod
2024-11-18 21:44:09 +00:00

85 lines
2.0 KiB
Go

package integration
import (
"context"
"database/sql"
"github.com/stretchr/testify/assert"
"github.com/themakers/hlog"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
"log"
"os"
"penahub.gitlab.yandexcloud.net/external/trashlog/app"
"penahub.gitlab.yandexcloud.net/external/trashlog/wrappers/zaptrashlog"
"gitea.pena/PenaSide/customer/internal/models"
"testing"
"time"
)
var (
commit string = os.Getenv("COMMIT")
buildTime string = os.Getenv("BUILD_TIME")
version string = os.Getenv("VERSION")
)
func TestTrashLogger(t *testing.T) {
logger, err := zap.NewProduction(zap.AddStacktrace(zap.DPanicLevel))
if err != nil {
log.Fatalf("failed to init zap logger: %v", err)
}
ptime := time.Now()
config := models.Config{
Service: models.ServiceConfiguration{
TrashLogHost: "localhost:7113",
},
}
ctx := context.Background()
clickHouseLogger, err := zaptrashlog.NewCore(ctx, zap.InfoLevel, config.Service.TrashLogHost, version, commit, ptime.Unix())
if err != nil {
panic(err)
}
loggerForHlog := logger.WithOptions(zap.WrapCore(func(core zapcore.Core) zapcore.Core {
return zapcore.NewTee(core, clickHouseLogger)
}))
loggerHlog := hlog.New(loggerForHlog).Module("customer_test")
loggerHlog.Emit(app.InfoSvcStarted{})
clientClickHouse, err := sql.Open(
"clickhouse",
"tcp://127.0.0.1:9000?debug=true",
)
assert.NoError(t, err)
time.Sleep(10 * time.Second)
rows, err := clientClickHouse.Query("SELECT svc_commit, svc_build_time, svc_version FROM statistics")
assert.NoError(t, err)
defer rows.Close()
foundCommit := false
foundVersion := false
for rows.Next() {
var commitValue, buildTimeValue, versionValue string
err := rows.Scan(&commitValue, &buildTimeValue, &versionValue)
assert.NoError(t, err)
if commitValue == commit {
foundCommit = true
}
if versionValue == version {
foundVersion = true
}
}
assert.Equal(t, foundCommit, true, "commit value do not match")
//assert.Equal(t, foundBuildTime, true, "buildTime value do not match")
assert.Equal(t, foundVersion, true, "version value do not match")
}