MM-46874: Change to 400 for failed to upgrade ws (#21492)
https://mattermost.atlassian.net/browse/MM-46874 ```release-note NONE ```
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
0fc1655cfc
Коммит
0323e40d3c
@@ -71,6 +71,7 @@ type TestHelper struct {
|
|||||||
|
|
||||||
IncludeCacheLayer bool
|
IncludeCacheLayer bool
|
||||||
|
|
||||||
|
LogBuffer *mlog.Buffer
|
||||||
TestLogger *mlog.Logger
|
TestLogger *mlog.Logger
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -119,11 +120,16 @@ func setupTestHelper(dbStore store.Store, searchEngine *searchengine.Broker, ent
|
|||||||
options = append(options, app.StoreOverride(dbStore))
|
options = append(options, app.StoreOverride(dbStore))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
buffer := &mlog.Buffer{}
|
||||||
|
|
||||||
testLogger, _ := mlog.NewLogger()
|
testLogger, _ := mlog.NewLogger()
|
||||||
logCfg, _ := config.MloggerConfigFromLoggerConfig(&memoryConfig.LogSettings, nil, config.GetLogFileLocation)
|
logCfg, _ := config.MloggerConfigFromLoggerConfig(&memoryConfig.LogSettings, nil, config.GetLogFileLocation)
|
||||||
if errCfg := testLogger.ConfigureTargets(logCfg, nil); errCfg != nil {
|
if errCfg := testLogger.ConfigureTargets(logCfg, nil); errCfg != nil {
|
||||||
panic("failed to configure test logger: " + errCfg.Error())
|
panic("failed to configure test logger: " + errCfg.Error())
|
||||||
}
|
}
|
||||||
|
if errW := mlog.AddWriterTarget(testLogger, buffer, true, mlog.StdAll...); errW != nil {
|
||||||
|
panic("failed to add writer target to test logger: " + errW.Error())
|
||||||
|
}
|
||||||
// lock logger config so server init cannot override it during testing.
|
// lock logger config so server init cannot override it during testing.
|
||||||
testLogger.LockConfiguration()
|
testLogger.LockConfiguration()
|
||||||
options = append(options, app.SetLogger(testLogger))
|
options = append(options, app.SetLogger(testLogger))
|
||||||
@@ -140,6 +146,7 @@ func setupTestHelper(dbStore store.Store, searchEngine *searchengine.Broker, ent
|
|||||||
IncludeCacheLayer: includeCache,
|
IncludeCacheLayer: includeCache,
|
||||||
Context: request.EmptyContext(testLogger),
|
Context: request.EmptyContext(testLogger),
|
||||||
TestLogger: testLogger,
|
TestLogger: testLogger,
|
||||||
|
LogBuffer: buffer,
|
||||||
}
|
}
|
||||||
th.Context.SetLogger(testLogger)
|
th.Context.SetLogger(testLogger)
|
||||||
|
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ func connectWebSocket(c *Context, w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
ws, err := upgrader.Upgrade(w, r, nil)
|
ws, err := upgrader.Upgrade(w, r, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.Err = model.NewAppError("connect", "api.web_socket.connect.upgrade.app_error", nil, err.Error(), http.StatusInternalServerError)
|
c.Err = model.NewAppError("connect", "api.web_socket.connect.upgrade.app_error", nil, err.Error(), http.StatusBadRequest)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ import (
|
|||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"github.com/mattermost/mattermost-server/v6/model"
|
"github.com/mattermost/mattermost-server/v6/model"
|
||||||
|
"github.com/mattermost/mattermost-server/v6/shared/mlog"
|
||||||
|
"github.com/mattermost/mattermost-server/v6/testlib"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestWebSocketTrailingSlash(t *testing.T) {
|
func TestWebSocketTrailingSlash(t *testing.T) {
|
||||||
@@ -417,3 +419,15 @@ func TestWebSocketStatuses(t *testing.T) {
|
|||||||
|
|
||||||
WebSocketClient.Close()
|
WebSocketClient.Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestWebSocketUpgrade(t *testing.T) {
|
||||||
|
th := Setup(t)
|
||||||
|
defer th.TearDown()
|
||||||
|
|
||||||
|
url := fmt.Sprintf("http://localhost:%v", th.App.Srv().ListenAddr.Port) + model.APIURLSuffix + "/websocket"
|
||||||
|
resp, err := http.Get(url)
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.Equal(t, resp.StatusCode, http.StatusBadRequest)
|
||||||
|
require.NoError(t, th.TestLogger.Flush())
|
||||||
|
testlib.AssertLog(t, th.LogBuffer, mlog.LvlDebug.Name, "Failed to upgrade websocket connection.")
|
||||||
|
}
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user