github.com/mattermost/mattermost-server/server/v8@v8.0.0-20230610055354-a6d1d38b273d/config/logger_test.go (about) 1 // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. 2 // See LICENSE.txt for license information. 3 4 package config 5 6 import ( 7 "encoding/json" 8 "testing" 9 10 "github.com/stretchr/testify/assert" 11 "github.com/stretchr/testify/require" 12 13 "github.com/mattermost/mattermost-server/server/public/model" 14 "github.com/mattermost/mattermost-server/server/public/shared/mlog" 15 ) 16 17 func TestMloggerConfigFromAuditConfig(t *testing.T) { 18 auditSettings := model.ExperimentalAuditSettings{ 19 FileEnabled: model.NewBool(true), 20 FileName: model.NewString("audit.log"), 21 FileMaxSizeMB: model.NewInt(20), 22 FileMaxAgeDays: model.NewInt(1), 23 FileMaxBackups: model.NewInt(5), 24 FileCompress: model.NewBool(true), 25 FileMaxQueueSize: model.NewInt(5000), 26 } 27 28 t.Run("validate default audit settings", func(t *testing.T) { 29 cfg, err := MloggerConfigFromAuditConfig(auditSettings, nil) 30 require.NoError(t, err, "audit config should not error") 31 require.Len(t, cfg, 1, "default audit config should have one target") 32 33 targetCfg := cfg["_defAudit"] 34 35 // check general 36 assert.Equal(t, targetCfg.Type, "file") 37 assert.Equal(t, targetCfg.Format, "json") 38 assert.ElementsMatch(t, targetCfg.Levels, []mlog.Level{mlog.LvlAuditAPI, mlog.LvlAuditContent, mlog.LvlAuditPerms, mlog.LvlAuditCLI}) 39 40 // check format options 41 optionsExpected := map[string]any{ 42 "disable_timestamp": false, 43 "disable_msg": true, 44 "disable_stacktrace": true, 45 "disable_level": true, 46 } 47 var optionsReceived map[string]any 48 err = json.Unmarshal(targetCfg.FormatOptions, &optionsReceived) 49 require.NoError(t, err, "unmarshal should not fail") 50 assert.Equal(t, optionsExpected, optionsReceived) 51 }) 52 53 }