diff --git a/src/headless/plugins/muc/tests/messages.js b/src/headless/plugins/muc/tests/messages.js
index 8c6d18525..633abede8 100644
--- a/src/headless/plugins/muc/tests/messages.js
+++ b/src/headless/plugins/muc/tests/messages.js
@@ -1,6 +1,6 @@
/*global mock, converse */
-const { Strophe, u } = converse.env;
+const { Strophe, u, $msg } = converse.env;
describe("A MUC message", function () {
@@ -40,4 +40,81 @@ describe("A MUC message", function () {
expect(model.messages.at(0).get('occupant_id')).toBe("dd72603deec90a38ba552f7c68cbcc61bca202cd");
expect(model.messages.at(0).get('from_real_jid')).toBe(occupant_jid);
}));
+
+ it("keeps track whether you are the sender or not",
+ mock.initConverse([], {}, async function (_converse) {
+
+ const muc_jid = 'lounge@montague.lit';
+ const model = await mock.openAndEnterChatRoom(_converse, muc_jid, 'romeo');
+ const msg = $msg({
+ from: 'lounge@montague.lit/romeo',
+ id: u.getUniqueId(),
+ to: 'romeo@montague.lit',
+ type: 'groupchat'
+ }).c('body').t('I wrote this message!').tree();
+ await model.handleMessageStanza(msg);
+ await u.waitUntil(() => model.messages.last()?.get('received'));
+ expect(model.messages.last().get('sender')).toBe('me');
+ }));
+
+ it("gets updated with its stanza-id upon MUC reflection",
+ mock.initConverse([], {}, async function (_converse) {
+
+ const muc_jid = 'room@muc.example.com';
+ const model = await mock.openAndEnterChatRoom(_converse, muc_jid, 'romeo');
+
+ model.sendMessage({'body': 'hello world'});
+ await u.waitUntil(() => model.messages.length === 1);
+ const msg = model.messages.at(0);
+ expect(msg.get('stanza_id')).toBeUndefined();
+ expect(msg.get('origin_id')).toBe(msg.get('origin_id'));
+
+ const stanza = u.toStanza(`
+
+ Hello world
+
+
+ `);
+ spyOn(model, 'updateMessage').and.callThrough();
+ _converse.connection._dataRecv(mock.createRequest(stanza));
+ await u.waitUntil(() => model.updateMessage.calls.count() === 1);
+ expect(model.messages.length).toBe(1);
+ expect(model.messages.at(0).get('stanza_id room@muc.example.com')).toBe("5f3dbc5e-e1d3-4077-a492-693f3769c7ad");
+ expect(model.messages.at(0).get('origin_id')).toBe(msg.get('origin_id'));
+ }));
+
+ it("is rejected if it's an unencapsulated forwarded message",
+ mock.initConverse(['chatBoxesFetched'], {}, async function (_converse) {
+
+ const muc_jid = 'lounge@montague.lit';
+ await mock.openAndEnterChatRoom(_converse, muc_jid, 'romeo');
+ const impersonated_jid = `${muc_jid}/alice`;
+ const received_stanza = u.toStanza(`
+
+
+
+
+ Yet I should kill thee with much cherishing.
+
+
+
+ `);
+ spyOn(converse.env.log, 'error').and.callThrough();
+ _converse.connection._dataRecv(mock.createRequest(received_stanza));
+ await u.waitUntil(() => converse.env.log.error.calls.count() === 1);
+ expect(converse.env.log.error).toHaveBeenCalledWith(
+ `Ignoring unencapsulated forwarded message from ${muc_jid}/mallory`
+ );
+ const model = _converse.chatboxes.get(muc_jid);
+ expect(model.messages.length).toBe(0);
+ }));
});
diff --git a/src/plugins/muc-views/tests/muc-messages.js b/src/plugins/muc-views/tests/muc-messages.js
index f589102e1..b122c693a 100644
--- a/src/plugins/muc-views/tests/muc-messages.js
+++ b/src/plugins/muc-views/tests/muc-messages.js
@@ -51,37 +51,6 @@ describe("A Groupchat Message", function () {
}));
});
- it("is rejected if it's an unencapsulated forwarded message",
- mock.initConverse(['chatBoxesFetched'], {}, async function (_converse) {
-
- const muc_jid = 'lounge@montague.lit';
- await mock.openAndEnterChatRoom(_converse, muc_jid, 'romeo');
- const impersonated_jid = `${muc_jid}/alice`;
- const received_stanza = u.toStanza(`
-
-
-
-
- Yet I should kill thee with much cherishing.
-
-
-
- `);
- const view = _converse.chatboxviews.get(muc_jid);
- spyOn(converse.env.log, 'error').and.callThrough();
- _converse.connection._dataRecv(mock.createRequest(received_stanza));
- await u.waitUntil(() => converse.env.log.error.calls.count() === 1);
- expect(converse.env.log.error).toHaveBeenCalledWith(
- `Ignoring unencapsulated forwarded message from ${muc_jid}/mallory`
- );
- expect(view.querySelectorAll('.chat-msg').length).toBe(0);
- expect(view.model.messages.length).toBe(0);
- }));
-
it("can contain a chat state notification and will still be shown",
mock.initConverse(['chatBoxesFetched'], {}, async function (_converse) {
@@ -302,23 +271,6 @@ describe("A Groupchat Message", function () {
expect(view.model.occupants._events.add.length).toBe(add_events);
}));
- it("keeps track whether you are the sender or not",
- mock.initConverse([], {}, async function (_converse) {
-
- const muc_jid = 'lounge@montague.lit';
- await mock.openAndEnterChatRoom(_converse, muc_jid, 'romeo');
- const view = _converse.chatboxviews.get(muc_jid);
- const msg = $msg({
- from: 'lounge@montague.lit/romeo',
- id: u.getUniqueId(),
- to: 'romeo@montague.lit',
- type: 'groupchat'
- }).c('body').t('I wrote this message!').tree();
- await view.model.handleMessageStanza(msg);
- await u.waitUntil(() => view.model.messages.last()?.get('received'));
- expect(view.model.messages.last().get('sender')).toBe('me');
- }));
-
it("will be shown as received upon MUC reflection",
mock.initConverse([], {}, async function (_converse) {
@@ -360,38 +312,6 @@ describe("A Groupchat Message", function () {
expect(message.get('origin_id')).toBe(msg_obj.get('origin_id'));
}));
- it("gets updated with its stanza-id upon MUC reflection",
- mock.initConverse([], {}, async function (_converse) {
-
- const muc_jid = 'room@muc.example.com';
- await mock.openAndEnterChatRoom(_converse, muc_jid, 'romeo');
- const view = _converse.chatboxviews.get(muc_jid);
-
- view.model.sendMessage({'body': 'hello world'});
- await u.waitUntil(() => view.model.messages.length === 1);
- const msg = view.model.messages.at(0);
- expect(msg.get('stanza_id')).toBeUndefined();
- expect(msg.get('origin_id')).toBe(msg.get('origin_id'));
-
- const stanza = u.toStanza(`
-
- Hello world
-
-
- `);
- spyOn(view.model, 'updateMessage').and.callThrough();
- _converse.connection._dataRecv(mock.createRequest(stanza));
- await u.waitUntil(() => view.model.updateMessage.calls.count() === 1);
- expect(view.model.messages.length).toBe(1);
- expect(view.model.messages.at(0).get('stanza_id room@muc.example.com')).toBe("5f3dbc5e-e1d3-4077-a492-693f3769c7ad");
- expect(view.model.messages.at(0).get('origin_id')).toBe(msg.get('origin_id'));
- }));
-
it("can cause a delivery receipt to be returned",
mock.initConverse([], {}, async function (_converse) {