Add a test for the login flow when there is a teamserver
- just to check it keeps working.
This commit is contained in:
parent
5ff59b0c23
commit
98e694646c
|
@ -135,14 +135,17 @@ describe('loading:', function () {
|
||||||
|
|
||||||
const MatrixChat = sdk.getComponent('structures.MatrixChat');
|
const MatrixChat = sdk.getComponent('structures.MatrixChat');
|
||||||
const fragParts = parseQsFromFragment(windowLocation);
|
const fragParts = parseQsFromFragment(windowLocation);
|
||||||
|
|
||||||
|
const config = Object.assign({
|
||||||
|
default_hs_url: DEFAULT_HS_URL,
|
||||||
|
default_is_url: DEFAULT_IS_URL,
|
||||||
|
}, opts.config || {});
|
||||||
|
|
||||||
var params = parseQs(windowLocation);
|
var params = parseQs(windowLocation);
|
||||||
matrixChat = ReactDOM.render(
|
matrixChat = ReactDOM.render(
|
||||||
<MatrixChat
|
<MatrixChat
|
||||||
onNewScreen={onNewScreen}
|
onNewScreen={onNewScreen}
|
||||||
config={{
|
config={config}
|
||||||
default_hs_url: DEFAULT_HS_URL,
|
|
||||||
default_is_url: DEFAULT_IS_URL,
|
|
||||||
}}
|
|
||||||
realQueryParams={params}
|
realQueryParams={params}
|
||||||
startingFragmentQueryParams={fragParts.params}
|
startingFragmentQueryParams={fragParts.params}
|
||||||
enableGuest={true}
|
enableGuest={true}
|
||||||
|
@ -343,6 +346,40 @@ describe('loading:', function () {
|
||||||
}).done(done, done);
|
}).done(done, done);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("registers correctly with a Riot Team Server", function() {
|
||||||
|
sdk.setFetch(httpBackend.fetchFn); // XXX: ought to restore this!
|
||||||
|
|
||||||
|
httpBackend.when('GET', '/pushrules').respond(200, {});
|
||||||
|
httpBackend.when('POST', '/filter').respond(200, { filter_id: 'fid' });
|
||||||
|
|
||||||
|
loadApp({
|
||||||
|
config: {
|
||||||
|
teamServerConfig: {
|
||||||
|
teamServerURL: 'http://my_team_server',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
return q.delay(1).then(() => {
|
||||||
|
// we expect a loading spinner while we log into the RTS
|
||||||
|
assertAtLoadingSpinner(matrixChat);
|
||||||
|
|
||||||
|
httpBackend.when('GET', 'my_team_server/login').respond(200, {
|
||||||
|
team_token: 'nom',
|
||||||
|
});
|
||||||
|
return httpBackend.flush();
|
||||||
|
}).then(() => {
|
||||||
|
return awaitSyncingSpinner(matrixChat)
|
||||||
|
}).then(() => {
|
||||||
|
// we got a sync spinner - let the sync complete
|
||||||
|
return expectAndAwaitSync();
|
||||||
|
}).then(() => {
|
||||||
|
// once the sync completes, we should have a home page
|
||||||
|
ReactTestUtils.findRenderedComponentWithType(
|
||||||
|
matrixChat, sdk.getComponent('structures.HomePage'));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
describe('/#/login link:', function() {
|
describe('/#/login link:', function() {
|
||||||
beforeEach(function() {
|
beforeEach(function() {
|
||||||
loadApp({
|
loadApp({
|
||||||
|
|
|
@ -30,6 +30,33 @@ function HttpBackend() {
|
||||||
abort: abort,
|
abort: abort,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// very simplistic mapping from the whatwg fetch interface onto the request
|
||||||
|
// interface, so we can use the same mock backend for both.
|
||||||
|
this.fetchFn = function(input, init) {
|
||||||
|
init = init || {};
|
||||||
|
const requestOpts = {
|
||||||
|
uri: input,
|
||||||
|
method: init.method || 'GET',
|
||||||
|
body: init.body,
|
||||||
|
};
|
||||||
|
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
function callback(err, response, body) {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
resolve({
|
||||||
|
ok: response.statusCode >= 200 && response.statusCode < 300,
|
||||||
|
json: () => body,
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const req = new Request(requestOpts, callback);
|
||||||
|
console.log(`HTTP backend received request: ${req}`);
|
||||||
|
self.requests.push(req);
|
||||||
|
});
|
||||||
|
};
|
||||||
}
|
}
|
||||||
HttpBackend.prototype = {
|
HttpBackend.prototype = {
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue