init
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
package services
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/goravel/framework/facades"
|
||||
"github.com/stretchr/testify/assert"
|
||||
|
||||
"goravel/app/models"
|
||||
"goravel/app/services"
|
||||
"goravel/app/utils/traceid"
|
||||
)
|
||||
|
||||
func TestSystemLogTraceIDPersistence(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
uniqueTraceID := fmt.Sprintf("trace-%d", time.Now().UnixNano())
|
||||
log := models.SystemLog{
|
||||
Level: "info",
|
||||
Module: "trace_test",
|
||||
TraceID: uniqueTraceID,
|
||||
Message: "trace id persistence test",
|
||||
Context: `{"test":true}`,
|
||||
}
|
||||
|
||||
err := facades.Orm().Query().Create(&log)
|
||||
assert.NoError(t, err)
|
||||
assert.NotZero(t, log.ID)
|
||||
|
||||
t.Cleanup(func() {
|
||||
_, _ = facades.Orm().Query().Where("id", log.ID).Delete(&models.SystemLog{})
|
||||
})
|
||||
|
||||
var stored models.SystemLog
|
||||
err = facades.Orm().Query().Where("id", log.ID).First(&stored)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, uniqueTraceID, stored.TraceID)
|
||||
|
||||
var filtered models.SystemLog
|
||||
err = facades.Orm().Query().Where("trace_id", uniqueTraceID).First(&filtered)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, log.ID, filtered.ID)
|
||||
}
|
||||
|
||||
func TestSystemLogServiceRecord(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
service := services.NewSystemLogService()
|
||||
ctx, traceID := traceid.EnsureContext(context.Background())
|
||||
|
||||
err := service.Record(ctx, "error", "unit-test", "trace helper test", map[string]any{"ok": true})
|
||||
assert.NoError(t, err)
|
||||
|
||||
var stored models.SystemLog
|
||||
err = facades.Orm().Query().Where("trace_id", traceID).Order("id desc").First(&stored)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, "unit-test", stored.Module)
|
||||
|
||||
t.Cleanup(func() {
|
||||
_, _ = facades.Orm().Query().Where("trace_id", traceID).Delete(&models.SystemLog{})
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user