JC Brand 8 лет назад
Родитель
Сommit
6b2ca629cc
2 измененных файлов с 25 добавлено и 2 удалено
  1. 24 1
      spec/roomslist.js
  2. 1 1
      src/converse-roomslist.js

+ 24 - 1
spec/roomslist.js

@@ -11,16 +11,39 @@
                                      // have to mock stanza traffic.
                                      // have to mock stanza traffic.
             },
             },
             function (_converse) {
             function (_converse) {
+                test_utils.openControlBox().openRoomsPanel(_converse);
+                var controlbox = _converse.chatboxviews.get('controlbox');
+
+                var list = controlbox.el.querySelector('div.rooms-list-container');
+                expect(_.includes(list.classList, 'hidden')).toBeTruthy();
+
                 test_utils.openChatRoom(
                 test_utils.openChatRoom(
-                    _converse, 'theplay', 'conference.shakespeare.lit', 'JC');
+                    _converse, 'room', 'conference.shakespeare.lit', 'JC');
 
 
                 expect(_.isUndefined(_converse.rooms_list_view)).toBeFalsy();
                 expect(_.isUndefined(_converse.rooms_list_view)).toBeFalsy();
                 var room_els = _converse.rooms_list_view.el.querySelectorAll(".open-room");
                 var room_els = _converse.rooms_list_view.el.querySelectorAll(".open-room");
                 expect(room_els.length).toBe(1);
                 expect(room_els.length).toBe(1);
+                expect(room_els[0].innerText).toBe('room');
 
 
                 test_utils.openChatRoom(_converse, 'lounge', 'localhost', 'dummy');
                 test_utils.openChatRoom(_converse, 'lounge', 'localhost', 'dummy');
                 room_els = _converse.rooms_list_view.el.querySelectorAll(".open-room");
                 room_els = _converse.rooms_list_view.el.querySelectorAll(".open-room");
                 expect(room_els.length).toBe(2);
                 expect(room_els.length).toBe(2);
+
+                var view = _converse.chatboxviews.get('room@conference.shakespeare.lit');
+                view.close();
+                room_els = _converse.rooms_list_view.el.querySelectorAll(".open-room");
+                expect(room_els.length).toBe(1);
+                expect(room_els[0].innerText).toBe('lounge');
+                list = controlbox.el.querySelector('div.rooms-list-container');
+                expect(_.includes(list.classList, 'hidden')).toBeFalsy();
+
+                view = _converse.chatboxviews.get('lounge@localhost');
+                view.close();
+                room_els = _converse.rooms_list_view.el.querySelectorAll(".open-room");
+                expect(room_els.length).toBe(0);
+
+                list = controlbox.el.querySelector('div.rooms-list-container');
+                expect(_.includes(list.classList, 'hidden')).toBeTruthy();
             }
             }
         ));
         ));
     });
     });

+ 1 - 1
src/converse-roomslist.js

@@ -40,7 +40,7 @@
 
 
             _converse.RoomsListView = Backbone.View.extend({
             _converse.RoomsListView = Backbone.View.extend({
                 tagName: 'div',
                 tagName: 'div',
-                className: 'open-rooms-list, rooms-list-container',
+                className: 'open-rooms-list rooms-list-container',
                 events: {
                 events: {
                     'click .close-room': 'closeRoom',
                     'click .close-room': 'closeRoom',
                     'click .open-rooms-toggle': 'toggleRoomsList'
                     'click .open-rooms-toggle': 'toggleRoomsList'