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  }