This repository has been archived on 2022-09-21. You can view files and clone it, but cannot push or open issues or pull requests.
converse.js/src/headless/plugins/muc/tests/affiliations.js

42 lines
1.7 KiB
JavaScript

/*global mock, converse */
const $pres = converse.env.$pres;
const Strophe = converse.env.Strophe;
describe('The MUC Affiliations API', function () {
it('can be used to set affiliations in MUCs without having to join them first',
mock.initConverse([], {}, async function (_converse) {
const { api } = _converse;
const user_jid = 'annoyingguy@montague.lit';
const muc_jid = 'lounge@montague.lit';
await mock.openAndEnterChatRoom(_converse, muc_jid, 'romeo');
const presence = $pres({
'from': 'lounge@montague.lit/annoyingGuy',
'id': '27C55F89-1C6A-459A-9EB5-77690145D624',
'to': 'romeo@montague.lit/desktop'
})
.c('x', { 'xmlns': 'http://jabber.org/protocol/muc#user' })
.c('item', {
'jid': user_jid,
'affiliation': 'member',
'role': 'participant'
});
_converse.connection._dataRecv(mock.createRequest(presence));
api.rooms.affiliations.set(muc_jid, { 'jid': user_jid, 'affiliation': 'outcast', 'reason': 'Ban hammer!' });
const iq = _converse.connection.IQ_stanzas.pop();
expect(Strophe.serialize(iq)).toBe(
`<iq id="${iq.getAttribute('id')}" to="lounge@montague.lit" type="set" xmlns="jabber:client">` +
`<query xmlns="http://jabber.org/protocol/muc#admin">` +
`<item affiliation="outcast" jid="${user_jid}">` +
`<reason>Ban hammer!</reason>` +
`</item>` +
`</query>` +
`</iq>`);
})
);
});