discourse-chat-integration/test/javascripts/acceptance/chat-integration-test.js.es6

171 lines
4.9 KiB
JavaScript

import { acceptance } from "helpers/qunit-helpers";
acceptance("Chat Integration", {
loggedIn: true,
beforeEach() {
const response = (object) => {
return [
200,
{"Content-Type": "text/html; charset=utf-8"},
object
];
};
server.get('/admin/plugins/chat/providers', () => { // eslint-disable-line no-undef
return response({ providers: [{name: 'dummy', id:'dummy',channel_parameters:[{key:'somekey', regex:"^\\S+$"}]}] });
});
server.get('/admin/plugins/chat/channels', () => { // eslint-disable-line no-undef
return response({"channels":[{"id":97,"provider":"dummy","data":{val:"#general"},"rules":[{"id":98,"channel_id":97,"category_id":null,"tags":[],"filter":"watch","error_key":null}]}]});
});
server.post('/admin/plugins/chat/channels', () => { // eslint-disable-line no-undef
return response({ });
});
server.put('/admin/plugins/chat/channels/:id', () => { // eslint-disable-line no-undef
return response({ });
});
server.delete('/admin/plugins/chat/channels/:id', () => { // eslint-disable-line no-undef
return response({ });
});
server.post('/admin/plugins/chat/rules', () => { // eslint-disable-line no-undef
return response({ });
});
server.put('/admin/plugins/chat/rules/:id', () => { // eslint-disable-line no-undef
return response({ });
});
server.delete('/admin/plugins/chat/rules/:id', () => { // eslint-disable-line no-undef
return response({ });
});
server.post('/admin/plugins/chat/test', () => { // eslint-disable-line no-undef
return response({ });
});
server.get('/groups/search.json', () => { // eslint-disable-line no-undef
return response([]);
});
}
});
test("Rules load successfully", assert => {
visit("/admin/plugins/chat");
andThen(() => {
assert.ok(exists('#admin-plugin-chat table'), "it shows the table of rules");
assert.equal(find('#admin-plugin-chat table tr td').eq(0).text().trim(), 'All posts and replies', 'rule displayed');
});
});
test("Create channel works", assert => {
visit("/admin/plugins/chat");
andThen(() => {
click('#create_channel');
});
andThen(() => {
assert.ok(exists('#chat_integration_edit_channel_modal'), 'it displays the modal');
assert.ok(find('#save_channel').prop('disabled'), 'it disables the save button');
fillIn('#chat_integration_edit_channel_modal input', '#general');
});
andThen(() => {
assert.ok(!find('#save_channel').prop('disabled'), 'it enables the save button');
});
andThen(() => {
click('#save_channel');
});
andThen(() => {
assert.ok(!exists('#chat_integration_edit_channel_modal'), 'modal closes on save');
});
});
// test("Edit channel works", assert => {
// visit("/admin/plugins/chat");
// andThen(() => {
// click('#create_channel');
// });
// andThen(() => {
// assert.ok(exists('#chat_integration_edit_channel_modal'), 'it displays the modal');
// assert.ok(find('#save_channel').prop('disabled'), 'it disables the save button');
// fillIn('#chat_integration_edit_channel_modal input', '#general');
// });
// andThen(() => {
// assert.ok(!find('#save_channel').prop('disabled'), 'it enables the save button');
// })
// andThen(() => {
// click('#save_channel');
// });
// andThen(() => {
// assert.ok(!exists('#chat_integration_edit_channel_modal'), 'modal closes on save');
// })
// });
// test("Edit rule works", assert => {
// visit("/admin/plugins/chat");
// andThen(() => {
// assert.ok(exists('.edit:first'), 'edit button is displayed');
// });
// click('.edit:first');
// andThen(() => {
// assert.ok(exists('#chat_integration_edit_rule_modal'), 'modal opens on edit');
// assert.ok(!find('#save_rule').prop('disabled'), 'it enables the save button');
// });
// click('#save_rule');
// andThen(() => {
// assert.ok(!exists('#chat_integration_edit_rule_modal'), 'modal closes on save');
// });
// });
// test("Delete rule works", function(assert) {
// visit("/admin/plugins/chat");
// andThen(() => {
// assert.ok(exists('.delete:first'));
// click('.delete:first');
// });
// });
test("Test provider works", assert => {
visit("/admin/plugins/chat");
andThen(() => {
click('.fa-rocket');
});
andThen(() => {
assert.ok(exists('#chat_integration_test_modal'), 'it displays the modal');
assert.ok(find('#send_test').prop('disabled'), 'it disables the send button');
fillIn('#choose-topic-title', '9318');
});
andThen(() => {
click('#chat_integration_test_modal .radio:first');
});
andThen(() => {
assert.ok(!find('#send_test').prop('disabled'), 'it enables the send button');
});
andThen(() => {
click('#send_test');
});
andThen(() => {
assert.ok(exists('#chat_integration_test_modal'), 'modal doesn\'t close on send');
assert.ok(exists('#modal-alert.alert-success'), 'success message displayed');
});
});