diff --git a/pkg/log/zap/zap_test.go b/pkg/log/zap/zap_test.go index 9bb2a97df6e95f6f25503f277cfaa8a6d3a64959..6cdbcd68742f79d7c225cd7fdf959414ee3647ab 100644 --- a/pkg/log/zap/zap_test.go +++ b/pkg/log/zap/zap_test.go @@ -2,6 +2,8 @@ package zap import ( "context" + "reflect" + "slices" "testing" "git.perx.ru/perxis/perxis-go/pkg/log" @@ -9,6 +11,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" "go.uber.org/zap" + "go.uber.org/zap/zapcore" ) func TestExample(t *testing.T) { @@ -39,7 +42,34 @@ func TestExample(t *testing.T) { err := ws.Stop() assert.NoError(t, err) + wantEntries := []*log.Entry{ + { + LogLevel: log.Level(zapcore.InfoLevel), + Message: "создан элемент коллекции", + Category: "create", + Component: "Items.Service", + Event: "Items.Create", + Object: "/spaces/WPNN/envs/9VGP/cols/GxNv/items/W0fl", + Caller: "/users/PHVz", + Attr: "any", + Tags: []string{"tag1", "tag2", "tag3"}, + }, + { + LogLevel: log.Level(zapcore.WarnLevel), + Message: "изменен элемент коллекции", + Category: "update", + Component: "Items.Service", + Event: "Items.Update", + Object: "/spaces/WPNN/envs/9VGP/cols/GxNv/items/W0fl/revs/cmV2cw", + Caller: "/users/PHVz", + }, + } + service.AssertCalled(t, "Log", mock.Anything, mock.MatchedBy(func(entries []*log.Entry) bool { - return len(entries) == 2 + return len(entries) == 2 && slices.EqualFunc(entries, wantEntries, func(entryA, entryB *log.Entry) bool { + entryA.ID = entryB.ID // игнорируем ID + entryA.Timestamp = entryB.Timestamp // игнорируем Timestamp + return reflect.DeepEqual(entryA, entryB) + }) })) }