From dff5f485c99366d305f051a6cb503accfcfbbef3 Mon Sep 17 00:00:00 2001 From: JC Brand Date: Tue, 29 Jun 2021 13:13:15 +0200 Subject: [PATCH] Split out MUC tests --- karma.conf.js | 3 +- src/plugins/chatview/tests/me-messages.js | 52 -------------------- src/plugins/muc-views/tests/me-messages.js | 56 ++++++++++++++++++++++ 3 files changed, 58 insertions(+), 53 deletions(-) create mode 100644 src/plugins/muc-views/tests/me-messages.js diff --git a/karma.conf.js b/karma.conf.js index 2f2367452..a98eab169 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -41,7 +41,6 @@ module.exports = function(config) { { pattern: "src/headless/tests/eventemitter.js", type: 'module' }, { pattern: "src/plugins/bookmark-views/tests/bookmarks.js", type: 'module' }, { pattern: "src/plugins/chatview/tests/chatbox.js", type: 'module' }, - { pattern: "src/plugins/chatview/tests/unreads.js", type: 'module' }, { pattern: "src/plugins/chatview/tests/corrections.js", type: 'module' }, { pattern: "src/plugins/chatview/tests/emojis.js", type: 'module' }, { pattern: "src/plugins/chatview/tests/http-file-upload.js", type: 'module' }, @@ -55,6 +54,7 @@ module.exports = function(config) { { pattern: "src/plugins/chatview/tests/receipts.js", type: 'module' }, { pattern: "src/plugins/chatview/tests/spoilers.js", type: 'module' }, { pattern: "src/plugins/chatview/tests/styling.js", type: 'module' }, + { pattern: "src/plugins/chatview/tests/unreads.js", type: 'module' }, { pattern: "src/plugins/chatview/tests/xss.js", type: 'module' }, { pattern: "src/plugins/controlbox/tests/controlbox.js", type: 'module' }, { pattern: "src/plugins/controlbox/tests/login.js", type: 'module' }, @@ -69,6 +69,7 @@ module.exports = function(config) { { pattern: "src/plugins/muc-views/tests/hats.js", type: 'module' }, { pattern: "src/plugins/muc-views/tests/http-file-upload.js", type: 'module' }, { pattern: "src/plugins/muc-views/tests/markers.js", type: 'module' }, + { pattern: "src/plugins/muc-views/tests/me-messages.js", type: 'module' }, { pattern: "src/plugins/muc-views/tests/mentions.js", type: 'module' }, { pattern: "src/plugins/muc-views/tests/modtools.js", type: 'module' }, { pattern: "src/plugins/muc-views/tests/muc-api.js", type: 'module' }, diff --git a/src/plugins/chatview/tests/me-messages.js b/src/plugins/chatview/tests/me-messages.js index 014ae8f7c..b3a307a08 100644 --- a/src/plugins/chatview/tests/me-messages.js +++ b/src/plugins/chatview/tests/me-messages.js @@ -2,58 +2,6 @@ const { u, sizzle, $msg } = converse.env; -describe("A Groupchat Message", function () { - - it("supports the /me command", mock.initConverse([], {}, async function (_converse) { - await mock.waitUntilDiscoConfirmed(_converse, 'montague.lit', [], ['vcard-temp']); - await u.waitUntil(() => _converse.xmppstatus.vcard.get('fullname')); - await mock.waitForRoster(_converse, 'current'); - await mock.openAndEnterChatRoom(_converse, 'lounge@montague.lit', 'romeo'); - const view = _converse.chatboxviews.get('lounge@montague.lit'); - if (!view.querySelectorAll('.chat-area').length) { - view.renderChatArea(); - } - let message = '/me is tired'; - const nick = mock.chatroom_names[0]; - let msg = $msg({ - 'from': 'lounge@montague.lit/'+nick, - 'id': u.getUniqueId(), - 'to': 'romeo@montague.lit', - 'type': 'groupchat' - }).c('body').t(message).tree(); - await view.model.handleMessageStanza(msg); - await u.waitUntil(() => sizzle('.chat-msg:last .chat-msg__text', view).pop()); - await u.waitUntil(() => view.querySelector('.chat-msg__text').textContent.trim() === 'is tired'); - expect(view.querySelector('.chat-msg__author').textContent.includes('**Dyon van de Wege')).toBeTruthy(); - - message = '/me is as well'; - msg = $msg({ - from: 'lounge@montague.lit/Romeo Montague', - id: u.getUniqueId(), - to: 'romeo@montague.lit', - type: 'groupchat' - }).c('body').t(message).tree(); - await view.model.handleMessageStanza(msg); - await u.waitUntil(() => view.querySelectorAll('.chat-msg').length === 2); - await u.waitUntil(() => Array.from(view.querySelectorAll('.chat-msg__text')).pop().textContent.trim() === 'is as well'); - expect(sizzle('.chat-msg__author:last', view).pop().textContent.includes('**Romeo Montague')).toBeTruthy(); - - // Check rendering of a mention inside a me message - const msg_text = "/me mentions romeo"; - msg = $msg({ - from: 'lounge@montague.lit/gibson', - id: u.getUniqueId(), - to: 'romeo@montague.lit', - type: 'groupchat' - }).c('body').t(msg_text).up() - .c('reference', {'xmlns':'urn:xmpp:reference:0', 'begin':'13', 'end':'19', 'type':'mention', 'uri':'xmpp:romeo@montague.lit'}).nodeTree; - await view.model.handleMessageStanza(msg); - await u.waitUntil(() => view.querySelectorAll('.chat-msg__text').length === 3); - await u.waitUntil(() => sizzle('.chat-msg__text:last', view).pop().innerHTML.replace(//g, '') === - 'mentions romeo'); - })); -}); - describe("A Message", function () { it("supports the /me command", mock.initConverse([], {}, async function (_converse) { diff --git a/src/plugins/muc-views/tests/me-messages.js b/src/plugins/muc-views/tests/me-messages.js new file mode 100644 index 000000000..e69fa8d8c --- /dev/null +++ b/src/plugins/muc-views/tests/me-messages.js @@ -0,0 +1,56 @@ +/*global mock, converse */ + +const { u, sizzle, $msg } = converse.env; + + +describe("A Groupchat Message", function () { + + it("supports the /me command", mock.initConverse([], {}, async function (_converse) { + await mock.waitUntilDiscoConfirmed(_converse, 'montague.lit', [], ['vcard-temp']); + await u.waitUntil(() => _converse.xmppstatus.vcard.get('fullname')); + await mock.waitForRoster(_converse, 'current'); + await mock.openAndEnterChatRoom(_converse, 'lounge@montague.lit', 'romeo'); + const view = _converse.chatboxviews.get('lounge@montague.lit'); + if (!view.querySelectorAll('.chat-area').length) { + view.renderChatArea(); + } + let message = '/me is tired'; + const nick = mock.chatroom_names[0]; + let msg = $msg({ + 'from': 'lounge@montague.lit/'+nick, + 'id': u.getUniqueId(), + 'to': 'romeo@montague.lit', + 'type': 'groupchat' + }).c('body').t(message).tree(); + await view.model.handleMessageStanza(msg); + await u.waitUntil(() => sizzle('.chat-msg:last .chat-msg__text', view).pop()); + await u.waitUntil(() => view.querySelector('.chat-msg__text').textContent.trim() === 'is tired'); + expect(view.querySelector('.chat-msg__author').textContent.includes('**Dyon van de Wege')).toBeTruthy(); + + message = '/me is as well'; + msg = $msg({ + from: 'lounge@montague.lit/Romeo Montague', + id: u.getUniqueId(), + to: 'romeo@montague.lit', + type: 'groupchat' + }).c('body').t(message).tree(); + await view.model.handleMessageStanza(msg); + await u.waitUntil(() => view.querySelectorAll('.chat-msg').length === 2); + await u.waitUntil(() => Array.from(view.querySelectorAll('.chat-msg__text')).pop().textContent.trim() === 'is as well'); + expect(sizzle('.chat-msg__author:last', view).pop().textContent.includes('**Romeo Montague')).toBeTruthy(); + + // Check rendering of a mention inside a me message + const msg_text = "/me mentions romeo"; + msg = $msg({ + from: 'lounge@montague.lit/gibson', + id: u.getUniqueId(), + to: 'romeo@montague.lit', + type: 'groupchat' + }).c('body').t(msg_text).up() + .c('reference', {'xmlns':'urn:xmpp:reference:0', 'begin':'13', 'end':'19', 'type':'mention', 'uri':'xmpp:romeo@montague.lit'}).nodeTree; + await view.model.handleMessageStanza(msg); + await u.waitUntil(() => view.querySelectorAll('.chat-msg__text').length === 3); + await u.waitUntil(() => sizzle('.chat-msg__text:last', view).pop().innerHTML.replace(//g, '') === + 'mentions romeo'); + })); +});