The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Rocket.Chat/tests/end-to-end/api/02-channels.js

506 lines
14 KiB

/* eslint-env mocha */
/* globals expect */
/* eslint no-unused-vars: 0 */
import {getCredentials, api, login, request, credentials, apiEmail, apiUsername, targetUser, log, apiPublicChannelName, channel } from '../../data/api-data.js';
import {adminEmail, password} from '../../data/user.js';
import supertest from 'supertest';
9 years ago
function getRoomInfo(roomId) {
return new Promise((resolve/*, reject*/) => {
request.get(api('channels.info'))
.set(credentials)
.query({
roomId
9 years ago
})
.end((err, req) => {
resolve(req.body);
});
});
}
describe('channels', function() {
this.retries(0);
before(done => getCredentials(done));
it('/channels.create', (done) => {
request.post(api('channels.create'))
.set(credentials)
.send({
name: apiPublicChannelName
})
.expect('Content-Type', 'application/json')
.expect(200)
.expect((res) => {
expect(res.body).to.have.property('success', true);
expect(res.body).to.have.deep.property('channel._id');
expect(res.body).to.have.deep.property('channel.name', apiPublicChannelName);
expect(res.body).to.have.deep.property('channel.t', 'c');
expect(res.body).to.have.deep.property('channel.msgs', 0);
channel._id = res.body.channel._id;
})
.end(done);
});
it('/channels.info', (done) => {
request.get(api('channels.info'))
.set(credentials)
.query({
roomId: channel._id
})
.expect('Content-Type', 'application/json')
.expect(200)
.expect((res) => {
expect(res.body).to.have.property('success', true);
expect(res.body).to.have.deep.property('channel._id');
expect(res.body).to.have.deep.property('channel.name', apiPublicChannelName);
expect(res.body).to.have.deep.property('channel.t', 'c');
expect(res.body).to.have.deep.property('channel.msgs', 0);
})
.end(done);
});
9 years ago
it('/channels.invite', async (done) => {
const roomInfo = await getRoomInfo(channel._id);
request.post(api('channels.invite'))
.set(credentials)
.send({
roomId: channel._id,
userId: 'rocket.cat'
})
.expect('Content-Type', 'application/json')
.expect(200)
.expect((res) => {
expect(res.body).to.have.property('success', true);
expect(res.body).to.have.deep.property('channel._id');
expect(res.body).to.have.deep.property('channel.name', apiPublicChannelName);
expect(res.body).to.have.deep.property('channel.t', 'c');
9 years ago
expect(res.body).to.have.deep.property('channel.msgs', roomInfo.channel.msgs + 1);
})
.end(done);
});
it('/channels.addModerator', (done) => {
request.post(api('channels.addModerator'))
.set(credentials)
.send({
roomId: channel._id,
userId: 'rocket.cat'
})
.expect('Content-Type', 'application/json')
.expect(200)
.expect((res) => {
expect(res.body).to.have.property('success', true);
})
.end(done);
});
it('/channels.removeModerator', (done) => {
request.post(api('channels.removeModerator'))
.set(credentials)
.send({
roomId: channel._id,
userId: 'rocket.cat'
})
.expect('Content-Type', 'application/json')
.expect(200)
.expect((res) => {
expect(res.body).to.have.property('success', true);
})
.end(done);
});
it('/channels.addOwner', (done) => {
request.post(api('channels.addOwner'))
.set(credentials)
.send({
roomId: channel._id,
userId: 'rocket.cat'
})
.expect('Content-Type', 'application/json')
.expect(200)
.expect((res) => {
expect(res.body).to.have.property('success', true);
})
.end(done);
});
it('/channels.removeOwner', (done) => {
request.post(api('channels.removeOwner'))
.set(credentials)
.send({
roomId: channel._id,
userId: 'rocket.cat'
})
.expect('Content-Type', 'application/json')
.expect(200)
.expect((res) => {
expect(res.body).to.have.property('success', true);
})
.end(done);
});
9 years ago
it('/channels.kick', async (done) => {
const roomInfo = await getRoomInfo(channel._id);
request.post(api('channels.kick'))
.set(credentials)
.send({
roomId: channel._id,
userId: 'rocket.cat'
})
.expect('Content-Type', 'application/json')
.expect(200)
.expect((res) => {
expect(res.body).to.have.property('success', true);
expect(res.body).to.have.deep.property('channel._id');
expect(res.body).to.have.deep.property('channel.name', apiPublicChannelName);
expect(res.body).to.have.deep.property('channel.t', 'c');
9 years ago
expect(res.body).to.have.deep.property('channel.msgs', roomInfo.channel.msgs + 1);
})
.end(done);
});
9 years ago
it('/channels.invite', async (done) => {
const roomInfo = await getRoomInfo(channel._id);
request.post(api('channels.invite'))
.set(credentials)
.send({
roomId: channel._id,
userId: 'rocket.cat'
})
.expect('Content-Type', 'application/json')
.expect(200)
.expect((res) => {
expect(res.body).to.have.property('success', true);
expect(res.body).to.have.deep.property('channel._id');
expect(res.body).to.have.deep.property('channel.name', apiPublicChannelName);
expect(res.body).to.have.deep.property('channel.t', 'c');
9 years ago
expect(res.body).to.have.deep.property('channel.msgs', roomInfo.channel.msgs + 1);
})
.end(done);
});
it('/channels.addOwner', (done) => {
request.post(api('channels.addOwner'))
.set(credentials)
.send({
roomId: channel._id,
userId: 'rocket.cat'
})
.expect('Content-Type', 'application/json')
.expect(200)
.expect((res) => {
expect(res.body).to.have.property('success', true);
})
.end(done);
});
it('/channels.setDescription', (done) => {
request.post(api('channels.setDescription'))
.set(credentials)
.send({
roomId: channel._id,
description: 'this is a description for a channel for api tests'
})
.expect('Content-Type', 'application/json')
.expect(200)
.expect((res) => {
expect(res.body).to.have.property('success', true);
expect(res.body).to.have.deep.property('description', 'this is a description for a channel for api tests');
})
.end(done);
});
it('/channels.setTopic', (done) => {
request.post(api('channels.setTopic'))
.set(credentials)
.send({
roomId: channel._id,
topic: 'this is a topic of a channel for api tests'
})
.expect('Content-Type', 'application/json')
.expect(200)
.expect((res) => {
expect(res.body).to.have.property('success', true);
expect(res.body).to.have.deep.property('topic', 'this is a topic of a channel for api tests');
})
.end(done);
});
it('/channels.setPurpose', (done) => {
request.post(api('channels.setPurpose'))
.set(credentials)
.send({
roomId: channel._id,
purpose: 'this is a purpose of a channel for api tests'
})
.expect('Content-Type', 'application/json')
.expect(200)
.expect((res) => {
expect(res.body).to.have.property('success', true);
expect(res.body).to.have.deep.property('purpose', 'this is a purpose of a channel for api tests');
})
.end(done);
});
it('/channels.history', (done) => {
request.get(api('channels.history'))
.set(credentials)
.query({
roomId: channel._id
})
.expect('Content-Type', 'application/json')
.expect(200)
.expect((res) => {
expect(res.body).to.have.property('success', true);
expect(res.body).to.have.property('messages');
})
.end(done);
});
it('/channels.cleanHistory', (done) => {
request.post(api('channels.cleanHistory'))
.set(credentials)
.send({
roomId: channel._id,
latest: '2016-12-09T13:42:25.304Z',
oldest: '2016-08-30T13:42:25.304Z'
})
.expect('Content-Type', 'application/json')
.expect(200)
.expect((res) => {
expect(res.body).to.have.property('success', true);
})
.end(done);
});
it('/channels.archive', (done) => {
request.post(api('channels.archive'))
.set(credentials)
.send({
roomId: channel._id
})
.expect('Content-Type', 'application/json')
.expect(200)
.expect((res) => {
expect(res.body).to.have.property('success', true);
})
.end(done);
});
it('/channels.unarchive', (done) => {
request.post(api('channels.unarchive'))
.set(credentials)
.send({
roomId: channel._id
})
.expect('Content-Type', 'application/json')
.expect(200)
.expect((res) => {
expect(res.body).to.have.property('success', true);
})
.end(done);
});
it('/channels.close', (done) => {
request.post(api('channels.close'))
.set(credentials)
.send({
roomId: channel._id
})
.expect('Content-Type', 'application/json')
.expect(200)
.expect((res) => {
expect(res.body).to.have.property('success', true);
})
.end(done);
});
it('/channels.open', (done) => {
request.post(api('channels.open'))
.set(credentials)
.send({
roomId: channel._id
})
.expect('Content-Type', 'application/json')
.expect(200)
.expect((res) => {
expect(res.body).to.have.property('success', true);
})
.end(done);
});
it('/channels.list', (done) => {
request.get(api('channels.list'))
.set(credentials)
.query({
roomId: channel._id
})
.expect('Content-Type', 'application/json')
.expect(200)
.expect((res) => {
expect(res.body).to.have.property('success', true);
expect(res.body).to.have.property('count');
expect(res.body).to.have.property('total');
})
.end(done);
});
it('/channels.list.joined', (done) => {
request.get(api('channels.list.joined'))
.set(credentials)
.query({
roomId: channel._id
})
.expect('Content-Type', 'application/json')
.expect(200)
.expect((res) => {
expect(res.body).to.have.property('success', true);
expect(res.body).to.have.property('count');
expect(res.body).to.have.property('total');
})
.end(done);
});
9 years ago
it('/channels.rename', async (done) => {
const roomInfo = await getRoomInfo(channel._id);
request.post(api('channels.rename'))
.set(credentials)
.send({
roomId: channel._id,
name: `EDITED${ apiPublicChannelName }`
})
.expect('Content-Type', 'application/json')
.expect(200)
.expect((res) => {
expect(res.body).to.have.property('success', true);
expect(res.body).to.have.deep.property('channel._id');
expect(res.body).to.have.deep.property('channel.name', `EDITED${ apiPublicChannelName }`);
expect(res.body).to.have.deep.property('channel.t', 'c');
9 years ago
expect(res.body).to.have.deep.property('channel.msgs', roomInfo.channel.msgs + 1);
})
.end(done);
});
it('/channels.getIntegrations', (done) => {
request.get(api('channels.getIntegrations'))
.set(credentials)
.query({
roomId: channel._id
})
.expect('Content-Type', 'application/json')
.expect(200)
.expect((res) => {
expect(res.body).to.have.property('success', true);
expect(res.body).to.have.property('count', 0);
expect(res.body).to.have.property('total', 0);
})
.end(done);
});
it('/channels.addAll', (done) => {
request.post(api('channels.addAll'))
.set(credentials)
.send({
roomId: channel._id
})
.expect('Content-Type', 'application/json')
.expect(200)
.expect((res) => {
expect(res.body).to.have.property('success', true);
expect(res.body).to.have.deep.property('channel._id');
expect(res.body).to.have.deep.property('channel.name', `EDITED${ apiPublicChannelName }`);
expect(res.body).to.have.deep.property('channel.t', 'c');
})
.end(done);
});
9 years ago
it('/channels.setJoinCode', async (done) => {
const roomInfo = await getRoomInfo(channel._id);
request.post(api('channels.setJoinCode'))
.set(credentials)
.send({
roomId: channel._id,
joinCode: '123'
})
.expect('Content-Type', 'application/json')
.expect(200)
.expect((res) => {
expect(res.body).to.have.property('success', true);
expect(res.body).to.have.deep.property('channel._id');
expect(res.body).to.have.deep.property('channel.name', `EDITED${ apiPublicChannelName }`);
expect(res.body).to.have.deep.property('channel.t', 'c');
9 years ago
expect(res.body).to.have.deep.property('channel.msgs', roomInfo.channel.msgs);
})
.end(done);
});
9 years ago
it('/channels.setReadOnly', async (done) => {
const roomInfo = await getRoomInfo(channel._id);
request.post(api('channels.setReadOnly'))
.set(credentials)
.send({
roomId: channel._id,
readOnly: true
})
.expect('Content-Type', 'application/json')
.expect(200)
.expect((res) => {
expect(res.body).to.have.property('success', true);
expect(res.body).to.have.deep.property('channel._id');
expect(res.body).to.have.deep.property('channel.name', `EDITED${ apiPublicChannelName }`);
expect(res.body).to.have.deep.property('channel.t', 'c');
9 years ago
expect(res.body).to.have.deep.property('channel.msgs', roomInfo.channel.msgs);
})
.end(done);
});
9 years ago
it('/channels.leave', async (done) => {
const roomInfo = await getRoomInfo(channel._id);
request.post(api('channels.leave'))
.set(credentials)
.send({
roomId: channel._id
})
.expect('Content-Type', 'application/json')
.expect(200)
.expect((res) => {
expect(res.body).to.have.property('success', true);
expect(res.body).to.have.deep.property('channel._id');
expect(res.body).to.have.deep.property('channel.name', `EDITED${ apiPublicChannelName }`);
expect(res.body).to.have.deep.property('channel.t', 'c');
9 years ago
expect(res.body).to.have.deep.property('channel.msgs', roomInfo.channel.msgs + 1);
})
.end(done);
});
9 years ago
it('/channels.setType', async (done) => {
const roomInfo = await getRoomInfo(channel._id);
request.post(api('channels.setType'))
.set(credentials)
.send({
roomId: channel._id,
type: 'p'
})
.expect('Content-Type', 'application/json')
.expect(200)
.expect((res) => {
expect(res.body).to.have.property('success', true);
expect(res.body).to.have.deep.property('channel._id');
expect(res.body).to.have.deep.property('channel.name', `EDITED${ apiPublicChannelName }`);
expect(res.body).to.have.deep.property('channel.t', 'p');
9 years ago
expect(res.body).to.have.deep.property('channel.msgs', roomInfo.channel.msgs + 1);
})
.end(done);
});
9 years ago
});