utils.js 2.3 KB

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