123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- /*global mock, converse */
- const u = converse.env.utils;
- describe("The <converse-muc> component", function () {
- it("can be rendered as a standalone component",
- mock.initConverse([], {'auto_insert': false}, async function (_converse) {
- const { api } = _converse;
- const muc_jid = 'lounge@montague.lit';
- const nick = 'romeo';
- const muc_creation_promise = await api.rooms.open(muc_jid, {nick, 'hidden': true}, false);
- await mock.getRoomFeatures(_converse, muc_jid, []);
- await mock.receiveOwnMUCPresence(_converse, muc_jid, nick);
- await muc_creation_promise;
- const model = _converse.chatboxes.get(muc_jid);
- await u.waitUntil(() => (model.session.get('connection_status') === converse.ROOMSTATUS.ENTERED));
- const span_el = document.createElement('span');
- span_el.classList.add('conversejs');
- span_el.classList.add('converse-embedded');
- const muc_el = document.createElement('converse-muc');
- muc_el.classList.add('chatbox');
- muc_el.classList.add('chatroom');
- muc_el.setAttribute('jid', muc_jid);
- span_el.appendChild(muc_el);
- const body = document.querySelector('body');
- body.appendChild(span_el);
- await u.waitUntil(() => muc_el.querySelector('converse-muc-bottom-panel'));
- body.removeChild(span_el);
- expect(true).toBe(true);
- }));
- it("will update correctly when the jid property changes",
- mock.initConverse([], {'auto_insert': false}, async function (_converse) {
- const { api } = _converse;
- const muc_jid = 'lounge@montague.lit';
- const nick = 'romeo';
- const muc_creation_promise = api.rooms.open(muc_jid, {nick, 'hidden': true}, false);
- await mock.getRoomFeatures(_converse, muc_jid, []);
- await mock.receiveOwnMUCPresence(_converse, muc_jid, nick);
- await muc_creation_promise;
- const model = _converse.chatboxes.get(muc_jid);
- await u.waitUntil(() => (model.session.get('connection_status') === converse.ROOMSTATUS.ENTERED));
- const affs = api.settings.get('muc_fetch_members');
- const all_affiliations = Array.isArray(affs) ? affs : (affs ? ['member', 'admin', 'owner'] : []);
- await mock.returnMemberLists(_converse, muc_jid, [], all_affiliations);
- await model.messages.fetched;
- model.sendMessage({'body': 'hello from the lounge!'});
- const span_el = document.createElement('span');
- span_el.classList.add('conversejs');
- span_el.classList.add('converse-embedded');
- const muc_el = document.createElement('converse-muc');
- muc_el.classList.add('chatbox');
- muc_el.classList.add('chatroom');
- muc_el.setAttribute('jid', muc_jid);
- span_el.appendChild(muc_el);
- const body = document.querySelector('body');
- body.appendChild(span_el);
- await u.waitUntil(() => muc_el.querySelector('converse-muc-bottom-panel'));
- muc_el.querySelector('.box-flyout').setAttribute('style', 'height: 80vh');
- const message = await u.waitUntil(() => muc_el.querySelector('converse-chat-message'));
- expect(message.model.get('body')).toBe('hello from the lounge!');
- _converse.connection.sent_stanzas = [];
- const muc2_jid = 'bar@montague.lit';
- const muc2_creation_promise = api.rooms.open(muc2_jid, {nick, 'hidden': true}, false);
- await mock.getRoomFeatures(_converse, muc2_jid, []);
- await mock.receiveOwnMUCPresence(_converse, muc2_jid, nick);
- await muc2_creation_promise;
- const model2 = _converse.chatboxes.get(muc2_jid);
- await u.waitUntil(() => (model.session.get('connection_status') === converse.ROOMSTATUS.ENTERED));
- await mock.returnMemberLists(_converse, muc2_jid, [], all_affiliations);
- await model.messages.fetched;
- model2.sendMessage({'body': 'hello from the bar!'});
- muc_el.setAttribute('jid', muc2_jid);
- await u.waitUntil(() => muc_el.querySelector('converse-chat-message-body').textContent.trim() === 'hello from the bar!');
- body.removeChild(span_el);
- }));
- });
|