[MM-54288] Support Packet V2 (#29403)
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
091d1bba8b
Коммит
8d4bf4bae0
@@ -4,10 +4,15 @@
|
||||
package platform
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"os"
|
||||
"path"
|
||||
"testing"
|
||||
|
||||
"github.com/mattermost/mattermost/server/public/model"
|
||||
"github.com/mattermost/mattermost/server/public/shared/mlog"
|
||||
"github.com/mattermost/mattermost/server/v8/channels/testlib"
|
||||
"github.com/mattermost/mattermost/server/v8/config"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
@@ -104,3 +109,89 @@ func TestGetNotificationLogFile(t *testing.T) {
|
||||
assert.Equal(t, "notifications.log", fileData.Filename)
|
||||
assert.Positive(t, len(fileData.Body))
|
||||
}
|
||||
|
||||
func TestGetAdvancedLogs(t *testing.T) {
|
||||
th := Setup(t)
|
||||
defer th.TearDown()
|
||||
|
||||
t.Run("log messanges from std and LDAP level get returned", func(t *testing.T) {
|
||||
dir, err := os.MkdirTemp("", "logs")
|
||||
require.NoError(t, err)
|
||||
t.Cleanup(func() {
|
||||
err = os.RemoveAll(dir)
|
||||
require.NoError(t, err)
|
||||
})
|
||||
|
||||
optLDAP := map[string]string{
|
||||
"filename": path.Join(dir, "ldap.log"),
|
||||
}
|
||||
dataLDAP, err := json.Marshal(optLDAP)
|
||||
require.NoError(t, err)
|
||||
|
||||
optStd := map[string]string{
|
||||
"filename": path.Join(dir, "std.log"),
|
||||
}
|
||||
dataStd, err := json.Marshal(optStd)
|
||||
require.NoError(t, err)
|
||||
|
||||
cfg := mlog.LoggerConfiguration{
|
||||
"ldap-file": mlog.TargetCfg{
|
||||
Type: "file",
|
||||
Format: "json",
|
||||
Levels: []mlog.Level{
|
||||
mlog.LvlLDAPError,
|
||||
mlog.LvlLDAPWarn,
|
||||
mlog.LvlLDAPInfo,
|
||||
mlog.LvlLDAPDebug,
|
||||
},
|
||||
Options: dataLDAP,
|
||||
},
|
||||
"std": mlog.TargetCfg{
|
||||
Type: "file",
|
||||
Format: "json",
|
||||
Levels: []mlog.Level{
|
||||
mlog.LvlError,
|
||||
},
|
||||
Options: dataStd,
|
||||
},
|
||||
}
|
||||
cfgData, err := json.Marshal(cfg)
|
||||
require.NoError(t, err)
|
||||
|
||||
th.Service.UpdateConfig(func(c *model.Config) {
|
||||
c.LogSettings.AdvancedLoggingJSON = cfgData
|
||||
})
|
||||
th.Service.Logger().LogM([]mlog.Level{mlog.LvlLDAPInfo}, "Some LDAP info")
|
||||
th.Service.Logger().Error("Some Error")
|
||||
err = th.Service.Logger().Flush()
|
||||
require.NoError(t, err)
|
||||
|
||||
fileDatas, err := th.Service.GetAdvancedLogs(th.Context)
|
||||
require.NoError(t, err)
|
||||
require.Len(t, fileDatas, 2)
|
||||
|
||||
// Check the order of the log files
|
||||
var ldapIndex = 0
|
||||
var stdIndex = 1
|
||||
if fileDatas[1].Filename == "ldap.log" {
|
||||
ldapIndex = 1
|
||||
stdIndex = 0
|
||||
}
|
||||
|
||||
assert.Equal(t, "ldap.log", fileDatas[ldapIndex].Filename)
|
||||
testlib.AssertLog(t, bytes.NewBuffer(fileDatas[ldapIndex].Body), mlog.LvlLDAPInfo.Name, "Some LDAP info")
|
||||
|
||||
assert.Equal(t, "std.log", fileDatas[stdIndex].Filename)
|
||||
testlib.AssertLog(t, bytes.NewBuffer(fileDatas[stdIndex].Body), mlog.LvlError.Name, "Some Error")
|
||||
})
|
||||
// Disable AdvancedLoggingJSON
|
||||
th.Service.UpdateConfig(func(c *model.Config) {
|
||||
c.LogSettings.AdvancedLoggingJSON = nil
|
||||
})
|
||||
t.Run("No logs returned when AdvancedLoggingJSON is empty", func(t *testing.T) {
|
||||
// Confirm no logs get returned
|
||||
fileDatas, err := th.Service.GetAdvancedLogs(th.Context)
|
||||
require.NoError(t, err)
|
||||
require.Len(t, fileDatas, 0)
|
||||
})
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user