Skip to content

Commit

Permalink
Fix tests
Browse files Browse the repository at this point in the history
  • Loading branch information
jcbrand committed Feb 7, 2025
1 parent 84e1024 commit c739d31
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 88 deletions.
4 changes: 2 additions & 2 deletions src/plugins/chatview/tests/deprecated-retractions.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ describe('A received chat message', function () {
const message = view.model.messages.at(0);
expect(message.get('retracted')).toBeTruthy();
expect(view.querySelectorAll('.chat-msg--retracted').length).toBe(1);
const msg_el = view.querySelector('.chat-msg--retracted .chat-msg__message');
expect(msg_el.textContent.trim()).toBe('Mercutio has removed this message');
const msg_el = view.querySelector('.chat-msg--retracted .chat-msg__message .retraction');
expect(msg_el.firstElementChild.textContent.trim()).toBe('Mercutio has removed a message');
})
);
});
61 changes: 6 additions & 55 deletions src/plugins/chatview/tests/retractions.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ describe('A sent chat message', function () {
expect(message.get('retracted')).toBeTruthy();
expect(message.get('editable')).toBeFalsy();
expect(view.querySelectorAll('.chat-msg--retracted').length).toBe(1);
const el = view.querySelector('.chat-msg--retracted .chat-msg__message');
expect(el.textContent.trim()).toBe('You have removed this message');
const el = view.querySelector('.chat-msg--retracted .chat-msg__message .retraction');
expect(el.firstElementChild.textContent.trim()).toBe('You have removed a message');
})
);
});
Expand Down Expand Up @@ -96,8 +96,8 @@ describe('A received chat message', function () {
const message = view.model.messages.at(0);
expect(message.get('retracted')).toBeTruthy();
expect(view.querySelectorAll('.chat-msg--retracted').length).toBe(1);
const msg_el = view.querySelector('.chat-msg--retracted .chat-msg__message');
expect(msg_el.textContent.trim()).toBe('Mercutio has removed this message');
const msg_el = view.querySelector('.chat-msg--retracted .chat-msg__message .retraction');
expect(msg_el.firstElementChild.textContent.trim()).toBe('Mercutio has removed a message');
})
);

Expand Down Expand Up @@ -142,8 +142,8 @@ describe('A received chat message', function () {
const message = view.model.messages.at(0);
expect(message.get('retracted')).toBeTruthy();
expect(view.querySelectorAll('.chat-msg--retracted').length).toBe(1);
const msg_el = view.querySelector('.chat-msg--retracted .chat-msg__message');
expect(msg_el.textContent.trim()).toBe('Mercutio has removed this message');
const msg_el = view.querySelector('.chat-msg--retracted .chat-msg__message .retraction');
expect(msg_el.firstElementChild.textContent.trim()).toBe('Mercutio has removed a message');
})
);
});
Expand Down Expand Up @@ -357,52 +357,3 @@ describe('A Received Chat Message', function () {
})
);
});

describe('A Sent Chat Message', function () {
it(
'can be retracted by its author',
mock.initConverse(['chatBoxesFetched'], { vcard: { nickname: '' } }, async function (_converse) {
await mock.waitForRoster(_converse, 'current', 1);
const contact_jid = mock.cur_names[0].replace(/ /g, '.').toLowerCase() + '@montague.lit';
const view = await mock.openChatBoxFor(_converse, contact_jid);

view.model.sendMessage({ 'body': 'hello world' });
await u.waitUntil(() => view.querySelectorAll('.chat-msg').length === 1);

const message = view.model.messages.at(0);
expect(view.model.messages.length).toBe(1);
expect(message.get('retracted')).toBeFalsy();
expect(message.get('editable')).toBeTruthy();

const retract_button = await u.waitUntil(() =>
view.querySelector('.chat-msg__content .chat-msg__action-retract')
);
retract_button.click();
await u.waitUntil(() => u.isVisible(document.querySelector('#converse-modals .modal')));
const submit_button = document.querySelector('#converse-modals .modal button[type="submit"]');
submit_button.click();

const sent_stanzas = _converse.api.connection.get().sent_stanzas;
await u.waitUntil(() => view.querySelectorAll('.chat-msg--retracted').length === 1);

const msg_obj = view.model.messages.at(0);
const retraction_stanza = await u.waitUntil(() =>
sent_stanzas.filter((s) => s.querySelector('message retract')).pop()
);
expect(retraction_stanza).toEqualStanza(stx`
<message id="${retraction_stanza.getAttribute('id')}" to="${contact_jid}" type="chat" xmlns="jabber:client">
<retract id="${msg_obj.get('origin_id')}" xmlns="urn:xmpp:message-retract:1"/>
<body>/me retracted a message</body>
<store xmlns="urn:xmpp:hints"/>
<fallback xmlns="urn:xmpp:fallback:0" for="urn:xmpp:message-retract:1" />
</message>`);

expect(view.model.messages.length).toBe(1);
expect(message.get('retracted')).toBeTruthy();
expect(message.get('editable')).toBeFalsy();
expect(view.querySelectorAll('.chat-msg--retracted').length).toBe(1);
const el = view.querySelector('.chat-msg--retracted .chat-msg__message');
expect(el.textContent.trim()).toBe('You have removed this message');
})
);
});
21 changes: 10 additions & 11 deletions src/plugins/muc-views/tests/deprecated-retractions.js
Original file line number Diff line number Diff line change
Expand Up @@ -286,9 +286,8 @@ describe("Deprecated Message Retractions", function () {
const message = view.model.messages.at(1);
expect(message.get('retracted')).toBeTruthy();
expect(view.querySelectorAll('.chat-msg--retracted').length).toBe(1);
const msg_el = view.querySelector('.chat-msg--retracted .chat-msg__message');
expect(msg_el.textContent.trim()).toBe('Mercutio has removed this message');
expect(u.hasClass('chat-msg--followup', view.querySelector('.chat-msg--retracted'))).toBe(true);
const msg_el = view.querySelector('.chat-msg--retracted .chat-msg__message .retraction');
expect(msg_el.firstElementChild.textContent.trim()).toBe('Mercutio has removed a message');
}));
});

Expand Down Expand Up @@ -333,8 +332,8 @@ describe("Deprecated Message Retractions", function () {
expect(view.model.messages.at(0).get('retracted')).toBeTruthy();
expect(view.model.messages.at(0).get('editable')).toBe(false);
expect(view.querySelectorAll('.chat-msg--retracted').length).toBe(1);
const msg_el = view.querySelector('.chat-msg--retracted .chat-msg__message');
expect(msg_el.textContent.trim()).toBe('eve has removed this message');
const msg_el = view.querySelector('.chat-msg--retracted .chat-msg__message .retraction');
expect(msg_el.firstElementChild.textContent.trim()).toBe('eve has removed a message');
expect(msg_el.querySelector('.chat-msg--retracted q')).toBe(null);
}));

Expand Down Expand Up @@ -450,8 +449,8 @@ describe("Deprecated Message Retractions", function () {
expect(await view.model.handleRetraction.calls.all()[2].returnValue).toBe(true);
await u.waitUntil(() => view.querySelectorAll('.chat-msg').length === 2);
expect(view.querySelectorAll('.chat-msg--retracted').length).toBe(1);
const el = view.querySelector('.chat-msg--retracted .chat-msg__message div');
expect(el.textContent.trim()).toBe('Mercutio has removed this message');
const el = view.querySelector('.chat-msg--retracted .chat-msg__message .retraction');
expect(el.firstElementChild.textContent.trim()).toBe('Mercutio has removed a message');
expect(u.hasClass('chat-msg--followup', el.parentElement)).toBe(false);
}));

Expand Down Expand Up @@ -528,8 +527,8 @@ describe("Deprecated Message Retractions", function () {
await u.waitUntil(() => view.querySelectorAll('.chat-msg').length);
expect(view.querySelectorAll('.chat-msg').length).toBe(1);
expect(view.querySelectorAll('.chat-msg--retracted').length).toBe(1);
const el = view.querySelector('.chat-msg--retracted .chat-msg__message div');
expect(el.textContent.trim()).toBe('eve has removed this message');
const el = view.querySelector('.chat-msg--retracted .chat-msg__message .retraction');
expect(el.firstElementChild.textContent.trim()).toBe('eve has removed a message');
}));

it("may be returned as a tombstone moderated groupchat message",
Expand Down Expand Up @@ -615,8 +614,8 @@ describe("Deprecated Message Retractions", function () {
expect(view.querySelectorAll('.chat-msg').length).toBe(1);

expect(view.querySelectorAll('.chat-msg--retracted').length).toBe(1);
const el = view.querySelector('.chat-msg--retracted .chat-msg__message div');
expect(el.textContent.trim()).toBe('A moderator has removed this message');
const el = view.querySelector('.chat-msg--retracted .chat-msg__message .retraction');
expect(el.firstElementChild.textContent.trim()).toBe('A moderator has removed a message');
const qel = view.querySelector('.chat-msg--retracted .chat-msg__message q');
expect(qel.textContent.trim()).toBe('This message contains inappropriate content');
}));
Expand Down
36 changes: 16 additions & 20 deletions src/plugins/muc-views/tests/retractions.js
Original file line number Diff line number Diff line change
Expand Up @@ -616,12 +616,11 @@ describe("Message Retractions", function () {
from="${muc_jid}"
to="${muc_jid}/romeo"
xmlns="jabber:client">
<apply-to id="${stanza_id}" xmlns="urn:xmpp:fasten:0">
<moderated by="${_converse.bare_jid}" xmlns="urn:xmpp:message-moderate:0">
<retract xmlns="urn:xmpp:message-retract:0" />
<retract id="${stanza_id}" xmlns='urn:xmpp:message-retract:1'>
<moderated by="${_converse.bare_jid}" xmlns="urn:xmpp:message-moderate:1"/>
<reason>${reason}</reason>
</moderated>
</apply-to>
</retract>
</message>`;
await view.model.handleMessageStanza(retraction);
expect(view.model.messages.length).toBe(1);
Expand Down Expand Up @@ -749,8 +748,7 @@ describe("Message Retractions", function () {
<forwarded xmlns="urn:xmpp:forward:0">
<delay xmlns="urn:xmpp:delay" stamp="2019-09-20T23:08:25Z"/>
<message type="groupchat" from="${muc_jid}/eve" to="${_converse.bare_jid}" id="message-id-1">
<origin-id xmlns='urn:xmpp:sid:0' id="origin-id-1"/>
<retracted stamp="2019-09-20T23:09:32Z" xmlns="urn:xmpp:message-retract:0"/>
<retracted stamp='2019-09-20T23:09:32Z' xmlns='urn:xmpp:message-retract:1' id='retract-message-1'/>
</message>
</forwarded>
</result>
Expand All @@ -765,9 +763,9 @@ describe("Message Retractions", function () {
<forwarded xmlns="urn:xmpp:forward:0">
<delay xmlns="urn:xmpp:delay" stamp="2019-09-20T23:08:25Z"/>
<message type="groupchat" from="${muc_jid}/eve" to="${_converse.bare_jid}" id="retract-message-1">
<apply-to id="origin-id-1" xmlns="urn:xmpp:fasten:0">
<retract xmlns="urn:xmpp:message-retract:0"/>
</apply-to>
<retract id="message-id-1" xmlns='urn:xmpp:message-retract:1'/>
<fallback xmlns="urn:xmpp:fallback:0" for='urn:xmpp:message-retract:1'/>
<body>/me retracted a previous message, but it's unsupported by your client.</body>
</message>
</forwarded>
</result>
Expand Down Expand Up @@ -826,10 +824,10 @@ describe("Message Retractions", function () {
<forwarded xmlns="urn:xmpp:forward:0">
<delay xmlns="urn:xmpp:delay" stamp="2019-09-20T23:08:25Z"/>
<message type="groupchat" from="${muc_jid}/eve" to="${_converse.bare_jid}" id="message-id-1">
<moderated by="${muc_jid}/bob" stamp="2019-09-20T23:09:32Z" xmlns='urn:xmpp:message-moderate:0'>
<retracted xmlns="urn:xmpp:message-retract:0"/>
<reason>This message contains inappropriate content</reason>
</moderated>
<retracted stamp='2019-09-20T23:19:12Z' xmlns='urn:xmpp:message-retract:1'>
<moderated by="${muc_jid}/bob" xmlns="urn:xmpp:message-moderate:1"/>
<reason>This message contains inappropriate content for this forum</reason>
</retracted>
</message>
</forwarded>
</result>
Expand All @@ -844,12 +842,10 @@ describe("Message Retractions", function () {
<forwarded xmlns="urn:xmpp:forward:0">
<delay xmlns="urn:xmpp:delay" stamp="2019-09-20T23:08:25Z"/>
<message type="groupchat" from="${muc_jid}" to="${_converse.bare_jid}" id="retract-message-1">
<apply-to id="stanza-id" xmlns="urn:xmpp:fasten:0">
<moderated by="${muc_jid}/bob" xmlns='urn:xmpp:message-moderate:0'>
<retract xmlns="urn:xmpp:message-retract:0"/>
<reason>This message contains inappropriate content</reason>
</moderated>
</apply-to>
<retract id="stanza-id" xmlns='urn:xmpp:message-retract:1'>
<moderated by='[email protected]/macbeth' xmlns='urn:xmpp:message-moderate:1'/>
<reason>This message contains inappropriate content</reason>
</retract>
</message>
</forwarded>
</result>
Expand Down

0 comments on commit c739d31

Please sign in to comment.