Add test to check that the open rooms list shows unread messages
This commit is contained in:
parent
a4284e48f7
commit
3e5beaaf64
@ -2,6 +2,7 @@
|
|||||||
define(["mock", "converse-core", "converse-roomslist", "test-utils"], factory);
|
define(["mock", "converse-core", "converse-roomslist", "test-utils"], factory);
|
||||||
} (this, function (mock, converse, roomslist, test_utils) {
|
} (this, function (mock, converse, roomslist, test_utils) {
|
||||||
var _ = converse.env._;
|
var _ = converse.env._;
|
||||||
|
var $msg = converse.env.$msg;
|
||||||
|
|
||||||
describe("The converse-roomslist plugin", function () {
|
describe("The converse-roomslist plugin", function () {
|
||||||
|
|
||||||
@ -48,7 +49,37 @@
|
|||||||
));
|
));
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("An open room shown in the rooms list", function () {
|
describe("An room shown in the rooms list", function () {
|
||||||
|
|
||||||
|
it("shows unread messages directed at the user", mock.initConverse(
|
||||||
|
{ whitelisted_plugins: ['converse-roomslist'],
|
||||||
|
allow_bookmarks: false // Makes testing easier, otherwise we
|
||||||
|
// have to mock stanza traffic.
|
||||||
|
}, function (_converse) {
|
||||||
|
|
||||||
|
var room_jid = 'kitchen@conference.shakespeare.lit';
|
||||||
|
test_utils.openAndEnterChatRoom(
|
||||||
|
_converse, 'kitchen', 'conference.shakespeare.lit', 'romeo');
|
||||||
|
var view = _converse.chatboxviews.get(room_jid);
|
||||||
|
view.model.set({'minimized': true});
|
||||||
|
|
||||||
|
var contact_jid = mock.cur_names[5].replace(/ /g,'.').toLowerCase() + '@localhost';
|
||||||
|
var message = 'romeo: Your attention is required';
|
||||||
|
var nick = mock.chatroom_names[0],
|
||||||
|
msg = $msg({
|
||||||
|
from: room_jid+'/'+nick,
|
||||||
|
id: (new Date()).getTime(),
|
||||||
|
to: 'dummy@localhost',
|
||||||
|
type: 'groupchat'
|
||||||
|
}).c('body').t(message).tree();
|
||||||
|
view.handleMUCMessage(msg);
|
||||||
|
|
||||||
|
expect(_converse.minimized_chats.toggleview.$('.unread-message-count').is(':visible')).toBeTruthy();
|
||||||
|
expect(_converse.minimized_chats.toggleview.$('.unread-message-count').text()).toBe('1');
|
||||||
|
|
||||||
|
var room_el = _converse.rooms_list_view.el.querySelector(".available-chatroom");
|
||||||
|
expect(_.includes(room_el.classList, 'unread-msgs'));
|
||||||
|
}));
|
||||||
|
|
||||||
it("can be closed", mock.initConverse(
|
it("can be closed", mock.initConverse(
|
||||||
{ whitelisted_plugins: ['converse-roomslist'],
|
{ whitelisted_plugins: ['converse-roomslist'],
|
||||||
@ -56,24 +87,24 @@
|
|||||||
// have to mock stanza traffic.
|
// have to mock stanza traffic.
|
||||||
},
|
},
|
||||||
function (_converse) {
|
function (_converse) {
|
||||||
spyOn(window, 'confirm').and.callFake(function () {
|
|
||||||
return true;
|
spyOn(window, 'confirm').and.callFake(function () {
|
||||||
});
|
return true;
|
||||||
expect(_converse.chatboxes.length).toBe(1);
|
});
|
||||||
test_utils.openChatRoom(
|
expect(_converse.chatboxes.length).toBe(1);
|
||||||
_converse, 'lounge', 'conference.shakespeare.lit', 'JC');
|
test_utils.openChatRoom(
|
||||||
expect(_converse.chatboxes.length).toBe(2);
|
_converse, 'lounge', 'conference.shakespeare.lit', 'JC');
|
||||||
test_utils.openControlBox().openRoomsPanel(_converse);
|
expect(_converse.chatboxes.length).toBe(2);
|
||||||
var room_els = _converse.rooms_list_view.el.querySelectorAll(".open-room");
|
test_utils.openControlBox().openRoomsPanel(_converse);
|
||||||
expect(room_els.length).toBe(1);
|
var room_els = _converse.rooms_list_view.el.querySelectorAll(".open-room");
|
||||||
var close_el = _converse.rooms_list_view.el.querySelector(".close-room");
|
expect(room_els.length).toBe(1);
|
||||||
close_el.click();
|
var close_el = _converse.rooms_list_view.el.querySelector(".close-room");
|
||||||
expect(window.confirm).toHaveBeenCalledWith(
|
close_el.click();
|
||||||
'Are you sure you want to leave the room ""?');
|
expect(window.confirm).toHaveBeenCalledWith(
|
||||||
room_els = _converse.rooms_list_view.el.querySelectorAll(".open-room");
|
'Are you sure you want to leave the room ""?');
|
||||||
expect(room_els.length).toBe(0);
|
room_els = _converse.rooms_list_view.el.querySelectorAll(".open-room");
|
||||||
expect(_converse.chatboxes.length).toBe(1);
|
expect(room_els.length).toBe(0);
|
||||||
}
|
expect(_converse.chatboxes.length).toBe(1);
|
||||||
));
|
}));
|
||||||
});
|
});
|
||||||
}));
|
}));
|
||||||
|
Loading…
Reference in New Issue
Block a user