Move tests to separate file
This commit is contained in:
parent
de092f8f00
commit
7f2ab05f97
|
@ -69,6 +69,7 @@ module.exports = function(config) {
|
|||
{ pattern: "src/plugins/muc-views/tests/emojis.js", type: 'module' },
|
||||
{ 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/info-messages.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' },
|
||||
|
|
72
src/plugins/muc-views/tests/info-messages.js
Normal file
72
src/plugins/muc-views/tests/info-messages.js
Normal file
|
@ -0,0 +1,72 @@
|
|||
/*global mock, converse */
|
||||
|
||||
const u = converse.env.utils;
|
||||
|
||||
describe("an info message", function () {
|
||||
|
||||
it("is not rendered as a followup message",
|
||||
mock.initConverse(['chatBoxesFetched'], {}, async function (_converse) {
|
||||
|
||||
const muc_jid = 'lounge@montague.lit';
|
||||
const nick = 'romeo';
|
||||
await mock.openAndEnterChatRoom(_converse, muc_jid, nick);
|
||||
const view = _converse.chatboxviews.get(muc_jid);
|
||||
let presence = u.toStanza(`
|
||||
<presence xmlns="jabber:client" to="${_converse.jid}" from="${muc_jid}/romeo">
|
||||
<x xmlns="http://jabber.org/protocol/muc#user">
|
||||
<status code="201"/>
|
||||
<item role="moderator" affiliation="owner" jid="${_converse.jid}"/>
|
||||
<status code="110"/>
|
||||
</x>
|
||||
</presence>
|
||||
`);
|
||||
_converse.connection._dataRecv(mock.createRequest(presence));
|
||||
await u.waitUntil(() => view.querySelectorAll('.chat-info').length === 1);
|
||||
|
||||
presence = u.toStanza(`
|
||||
<presence xmlns="jabber:client" to="${_converse.jid}" from="${muc_jid}/romeo1">
|
||||
<x xmlns="http://jabber.org/protocol/muc#user">
|
||||
<status code="210"/>
|
||||
<item role="moderator" affiliation="owner" jid="${_converse.jid}"/>
|
||||
<status code="110"/>
|
||||
</x>
|
||||
</presence>
|
||||
`);
|
||||
_converse.connection._dataRecv(mock.createRequest(presence));
|
||||
await u.waitUntil(() => view.querySelectorAll('.chat-info').length === 2);
|
||||
|
||||
const messages = view.querySelectorAll('.chat-info');
|
||||
expect(u.hasClass('chat-msg--followup', messages[0])).toBe(false);
|
||||
expect(u.hasClass('chat-msg--followup', messages[1])).toBe(false);
|
||||
}));
|
||||
|
||||
it("is not shown if its a duplicate",
|
||||
mock.initConverse(['chatBoxesFetched'], {}, async function (_converse) {
|
||||
|
||||
const muc_jid = 'lounge@montague.lit';
|
||||
await mock.openAndEnterChatRoom(_converse, muc_jid, 'romeo');
|
||||
const view = _converse.chatboxviews.get(muc_jid);
|
||||
const presence = u.toStanza(`
|
||||
<presence xmlns="jabber:client" to="${_converse.jid}" from="${muc_jid}/romeo">
|
||||
<x xmlns="http://jabber.org/protocol/muc#user">
|
||||
<status code="201"/>
|
||||
<item role="moderator" affiliation="owner" jid="${_converse.jid}"/>
|
||||
<status code="110"/>
|
||||
</x>
|
||||
</presence>
|
||||
`);
|
||||
// XXX: We wait for createInfoMessages to complete, if we don't
|
||||
// we still get two info messages due to messages
|
||||
// created from presences not being queued and run
|
||||
// sequentially (i.e. by waiting for promises to resolve)
|
||||
// like we do with message stanzas.
|
||||
spyOn(view.model, 'createInfoMessages').and.callThrough();
|
||||
_converse.connection._dataRecv(mock.createRequest(presence));
|
||||
await u.waitUntil(() => view.model.createInfoMessages.calls.count());
|
||||
await u.waitUntil(() => view.querySelectorAll('.chat-info').length === 1);
|
||||
|
||||
_converse.connection._dataRecv(mock.createRequest(presence));
|
||||
await u.waitUntil(() => view.model.createInfoMessages.calls.count() === 2);
|
||||
expect(view.querySelectorAll('.chat-info').length).toBe(1);
|
||||
}));
|
||||
});
|
|
@ -51,77 +51,6 @@ describe("A Groupchat Message", function () {
|
|||
}));
|
||||
});
|
||||
|
||||
|
||||
describe("an info message", function () {
|
||||
|
||||
it("is not rendered as a followup message",
|
||||
mock.initConverse(['chatBoxesFetched'], {}, async function (_converse) {
|
||||
|
||||
const muc_jid = 'lounge@montague.lit';
|
||||
const nick = 'romeo';
|
||||
await mock.openAndEnterChatRoom(_converse, muc_jid, nick);
|
||||
const view = _converse.chatboxviews.get(muc_jid);
|
||||
let presence = u.toStanza(`
|
||||
<presence xmlns="jabber:client" to="${_converse.jid}" from="${muc_jid}/romeo">
|
||||
<x xmlns="http://jabber.org/protocol/muc#user">
|
||||
<status code="201"/>
|
||||
<item role="moderator" affiliation="owner" jid="${_converse.jid}"/>
|
||||
<status code="110"/>
|
||||
</x>
|
||||
</presence>
|
||||
`);
|
||||
_converse.connection._dataRecv(mock.createRequest(presence));
|
||||
await u.waitUntil(() => view.querySelectorAll('.chat-info').length === 1);
|
||||
|
||||
presence = u.toStanza(`
|
||||
<presence xmlns="jabber:client" to="${_converse.jid}" from="${muc_jid}/romeo1">
|
||||
<x xmlns="http://jabber.org/protocol/muc#user">
|
||||
<status code="210"/>
|
||||
<item role="moderator" affiliation="owner" jid="${_converse.jid}"/>
|
||||
<status code="110"/>
|
||||
</x>
|
||||
</presence>
|
||||
`);
|
||||
_converse.connection._dataRecv(mock.createRequest(presence));
|
||||
await u.waitUntil(() => view.querySelectorAll('.chat-info').length === 2);
|
||||
|
||||
const messages = view.querySelectorAll('.chat-info');
|
||||
expect(u.hasClass('chat-msg--followup', messages[0])).toBe(false);
|
||||
expect(u.hasClass('chat-msg--followup', messages[1])).toBe(false);
|
||||
}));
|
||||
|
||||
it("is not shown if its a duplicate",
|
||||
mock.initConverse(['chatBoxesFetched'], {}, async function (_converse) {
|
||||
|
||||
const muc_jid = 'lounge@montague.lit';
|
||||
await mock.openAndEnterChatRoom(_converse, muc_jid, 'romeo');
|
||||
const view = _converse.chatboxviews.get(muc_jid);
|
||||
const presence = u.toStanza(`
|
||||
<presence xmlns="jabber:client" to="${_converse.jid}" from="${muc_jid}/romeo">
|
||||
<x xmlns="http://jabber.org/protocol/muc#user">
|
||||
<status code="201"/>
|
||||
<item role="moderator" affiliation="owner" jid="${_converse.jid}"/>
|
||||
<status code="110"/>
|
||||
</x>
|
||||
</presence>
|
||||
`);
|
||||
// XXX: We wait for createInfoMessages to complete, if we don't
|
||||
// we still get two info messages due to messages
|
||||
// created from presences not being queued and run
|
||||
// sequentially (i.e. by waiting for promises to resolve)
|
||||
// like we do with message stanzas.
|
||||
spyOn(view.model, 'createInfoMessages').and.callThrough();
|
||||
_converse.connection._dataRecv(mock.createRequest(presence));
|
||||
await u.waitUntil(() => view.model.createInfoMessages.calls.count());
|
||||
await u.waitUntil(() => view.querySelectorAll('.chat-info').length === 1);
|
||||
|
||||
_converse.connection._dataRecv(mock.createRequest(presence));
|
||||
await u.waitUntil(() => view.model.createInfoMessages.calls.count() === 2);
|
||||
expect(view.querySelectorAll('.chat-info').length).toBe(1);
|
||||
}));
|
||||
});
|
||||
|
||||
|
||||
it("is rejected if it's an unencapsulated forwarded message",
|
||||
mock.initConverse(['chatBoxesFetched'], {}, async function (_converse) {
|
||||
|
||||
|
@ -475,7 +404,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) {
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user