PLT-3562 Switch websocket over to post-connect authentication (#4327)
* Switch websocket over to post-connect authentication * Add ability to specify token in websocket js driver, add unit tests * Temporarily disable client websocket tests until issues are resolved * Minor refactoring and fix status test * Add isAuthenticated method to WebConn and minor status updates
Этот коммит содержится в:
коммит произвёл
Christopher Speller
родитель
ef363fd88e
Коммит
316b155a42
49
webapp/tests/client_websocket.test.jsx
Обычный файл
49
webapp/tests/client_websocket.test.jsx
Обычный файл
@@ -0,0 +1,49 @@
|
||||
// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
|
||||
// See License.txt for license information.
|
||||
/*
|
||||
var assert = require('assert');
|
||||
import TestHelper from './test_helper.jsx';
|
||||
|
||||
describe('Client.WebSocket', function() {
|
||||
this.timeout(10000);
|
||||
|
||||
it('WebSocket.getStatusesByIds', function(done) {
|
||||
TestHelper.initBasic(() => {
|
||||
TestHelper.basicWebSocketClient().getStatusesByIds(
|
||||
[TestHelper.basicUser().id],
|
||||
function(resp) {
|
||||
TestHelper.basicWebSocketClient().close();
|
||||
assert.equal(resp.data[TestHelper.basicUser().id], 'online');
|
||||
done();
|
||||
}
|
||||
);
|
||||
}, true);
|
||||
});
|
||||
|
||||
it('WebSocket.getStatuses', function(done) {
|
||||
TestHelper.initBasic(() => {
|
||||
TestHelper.basicWebSocketClient().getStatuses(
|
||||
function(resp) {
|
||||
TestHelper.basicWebSocketClient().close();
|
||||
assert.equal(resp.data != null, true);
|
||||
done();
|
||||
}
|
||||
);
|
||||
}, true);
|
||||
});
|
||||
|
||||
it('WebSocket.userTyping', function(done) {
|
||||
TestHelper.initBasic(() => {
|
||||
TestHelper.basicWebSocketClient().userTyping(
|
||||
TestHelper.basicChannel().id,
|
||||
'',
|
||||
function(resp) {
|
||||
TestHelper.basicWebSocketClient().close();
|
||||
assert.equal(resp.status, 'OK');
|
||||
done();
|
||||
}
|
||||
);
|
||||
}, true);
|
||||
});
|
||||
});*/
|
||||
|
||||
@@ -2,13 +2,20 @@
|
||||
// See License.txt for license information.
|
||||
|
||||
import Client from 'client/client.jsx';
|
||||
import WebSocketClient from 'client/websocket_client.jsx';
|
||||
import jqd from 'jquery-deferred';
|
||||
|
||||
var HEADER_TOKEN = 'token';
|
||||
|
||||
class TestHelperClass {
|
||||
basicClient = () => {
|
||||
return this.basicc;
|
||||
}
|
||||
|
||||
basicWebSocketClient = () => {
|
||||
return this.basicwsc;
|
||||
}
|
||||
|
||||
basicTeam = () => {
|
||||
return this.basict;
|
||||
}
|
||||
@@ -53,6 +60,12 @@ class TestHelperClass {
|
||||
return c;
|
||||
}
|
||||
|
||||
createWebSocketClient(token) {
|
||||
var ws = new WebSocketClient();
|
||||
ws.initialize('http://localhost:8065/api/v3/users/websocket', token);
|
||||
return ws;
|
||||
}
|
||||
|
||||
fakeEmail = () => {
|
||||
return 'success' + this.generateId() + '@simulator.amazonses.com';
|
||||
}
|
||||
@@ -90,7 +103,7 @@ class TestHelperClass {
|
||||
return post;
|
||||
}
|
||||
|
||||
initBasic = (callback) => {
|
||||
initBasic = (callback, connectWS) => {
|
||||
this.basicc = this.createClient();
|
||||
|
||||
var d1 = jqd.Deferred();
|
||||
@@ -122,7 +135,10 @@ class TestHelperClass {
|
||||
rteamSignup.user.email,
|
||||
password,
|
||||
null,
|
||||
function() {
|
||||
function(data, res) {
|
||||
if (connectWS) {
|
||||
outer.basicwsc = outer.createWebSocketClient(res.header[HEADER_TOKEN]);
|
||||
}
|
||||
outer.basicClient().useHeaderToken();
|
||||
var channel = outer.fakeChannel();
|
||||
channel.team_id = outer.basicTeam().id;
|
||||
|
||||
Ссылка в новой задаче
Block a user