utils.js 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. window.addEventListener('converse-loaded', () => {
  2. const utils = converse.env.utils;
  3. const _ = converse.env._;
  4. return describe("Converse.js Utilities", function() {
  5. it("applySiteSettings: recursively applies user settings", function () {
  6. var context = {};
  7. var settings = {
  8. show_toolbar: true,
  9. chatview_avatar_width: 32,
  10. chatview_avatar_height: 32,
  11. auto_join_rooms: [],
  12. visible_toolbar_buttons: {
  13. 'emojis': true,
  14. 'call': false,
  15. 'clear': true,
  16. 'toggle_occupants': true
  17. }
  18. };
  19. _.extend(context, settings);
  20. var user_settings = {
  21. something_else: 'xxx',
  22. show_toolbar: false,
  23. chatview_avatar_width: 32,
  24. chatview_avatar_height: 48,
  25. auto_join_rooms: [
  26. 'anonymous@conference.nomnom.im',
  27. ],
  28. visible_toolbar_buttons: {
  29. 'emojis': false,
  30. 'call': false,
  31. 'toggle_occupants':false,
  32. 'invalid': false
  33. }
  34. };
  35. utils.applySiteSettings(context, settings, user_settings);
  36. expect(context.something_else).toBeUndefined();
  37. expect(context.show_toolbar).toBeFalsy();
  38. expect(context.chatview_avatar_width).toBe(32);
  39. expect(context.chatview_avatar_height).toBe(48);
  40. expect(_.keys(context.visible_toolbar_buttons)).toEqual(_.keys(settings.visible_toolbar_buttons));
  41. expect(context.visible_toolbar_buttons.emojis).toBeFalsy();
  42. expect(context.visible_toolbar_buttons.call).toBeFalsy();
  43. expect(context.visible_toolbar_buttons.toggle_occupants).toBeFalsy();
  44. expect(context.visible_toolbar_buttons.invalid).toBeFalsy();
  45. expect(context.auto_join_rooms.length).toBe(1);
  46. expect(context.auto_join_rooms[0]).toBe('anonymous@conference.nomnom.im');
  47. user_settings = {
  48. visible_toolbar_buttons: {
  49. 'toggle_occupants': true
  50. }
  51. };
  52. utils.applySiteSettings(context, settings, user_settings);
  53. expect(_.keys(context.visible_toolbar_buttons)).toEqual(_.keys(settings.visible_toolbar_buttons));
  54. expect(context.visible_toolbar_buttons.toggle_occupants).toBeTruthy();
  55. });
  56. });
  57. });