Files
gochat/backend/internal/app/database_test.go
T
2026-08-24 13:49:07 +08:00

35 lines
969 B
Go

package app
import (
"bytes"
"log"
"testing"
"github.com/stretchr/testify/require"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
gormlogger "gorm.io/gorm/logger"
)
type databaseLoggerFixture struct {
ID uint
PubsubToken string
}
func TestDatabaseLoggerRedactsQueryParametersAndIgnoresRecordNotFound(t *testing.T) {
var output bytes.Buffer
db, err := gorm.Open(sqlite.Open("file:"+t.Name()+"?mode=memory&cache=private"), &gorm.Config{
Logger: newDatabaseLogger(log.New(&output, "", 0), gormlogger.Info),
})
require.NoError(t, err)
require.NoError(t, db.AutoMigrate(&databaseLoggerFixture{}))
output.Reset()
const secret = "secret-pubsub-token"
err = db.Where("pubsub_token = ?", secret).First(&databaseLoggerFixture{}).Error
require.ErrorIs(t, err, gorm.ErrRecordNotFound)
require.Contains(t, output.String(), "pubsub_token = ?")
require.NotContains(t, output.String(), secret)
require.NotContains(t, output.String(), "record not found")
}