mattermost/server/config/logger_test.go
Agniva De Sarker c3ed07e679
OSF: Used model.NewPointer everywhere (#27838)
```release-note
NONE
```
2024-08-06 09:15:00 +05:30

52 lines
1.7 KiB
Go

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
package config
import (
"encoding/json"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/mlog"
)
func TestMloggerConfigFromAuditConfig(t *testing.T) {
auditSettings := model.ExperimentalAuditSettings{
FileEnabled: model.NewPointer(true),
FileName: model.NewPointer("audit.log"),
FileMaxSizeMB: model.NewPointer(20),
FileMaxAgeDays: model.NewPointer(1),
FileMaxBackups: model.NewPointer(5),
FileCompress: model.NewPointer(true),
FileMaxQueueSize: model.NewPointer(5000),
}
t.Run("validate default audit settings", func(t *testing.T) {
cfg, err := MloggerConfigFromAuditConfig(auditSettings, nil)
require.NoError(t, err, "audit config should not error")
require.Len(t, cfg, 1, "default audit config should have one target")
targetCfg := cfg["_defAudit"]
// check general
assert.Equal(t, targetCfg.Type, "file")
assert.Equal(t, targetCfg.Format, "json")
assert.ElementsMatch(t, targetCfg.Levels, []mlog.Level{mlog.LvlAuditAPI, mlog.LvlAuditContent, mlog.LvlAuditPerms, mlog.LvlAuditCLI})
// check format options
optionsExpected := map[string]any{
"disable_timestamp": false,
"disable_msg": true,
"disable_stacktrace": true,
"disable_level": true,
}
var optionsReceived map[string]any
err = json.Unmarshal(targetCfg.FormatOptions, &optionsReceived)
require.NoError(t, err, "unmarshal should not fail")
assert.Equal(t, optionsExpected, optionsReceived)
})
}