Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

SpeakerStats.spec.js 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import SpeakerStats from './SpeakerStats';
  2. describe('SpeakerStats', () => {
  3. const mockUserId = 1;
  4. const mockUserName = 'foo';
  5. let speakerStats;
  6. beforeEach(() => {
  7. speakerStats = new SpeakerStats(mockUserId, mockUserName);
  8. });
  9. describe('markAsHasLeft', () => {
  10. it('sets the user state as having left the meeting', () => {
  11. speakerStats.markAsHasLeft();
  12. expect(speakerStats.hasLeft()).toBe(true);
  13. });
  14. it('removes the user as a dominant speaker', () => {
  15. speakerStats.setIsDominantSpeaker(true);
  16. speakerStats.markAsHasLeft();
  17. expect(speakerStats.isDominantSpeaker()).toBe(false);
  18. });
  19. });
  20. describe('setDisplayName', () => {
  21. it('updates the username', () => {
  22. const newName = `new-${mockUserName}`;
  23. speakerStats.setDisplayName(newName);
  24. expect(speakerStats.getDisplayName()).toBe(newName);
  25. });
  26. });
  27. describe('getTotalDominantSpeakerTime', () => {
  28. const mockDate = new Date(2017, 1, 1);
  29. beforeEach(() => {
  30. jasmine.clock().install();
  31. jasmine.clock().mockDate(mockDate);
  32. });
  33. afterEach(() => {
  34. jasmine.clock().uninstall();
  35. });
  36. it('returns the total dominant speaker time', () => {
  37. const domaintSpeakerEvents = 3;
  38. const domaintSpeakerTime = 100;
  39. for (let i = 0; i < domaintSpeakerEvents; i++) {
  40. speakerStats.setIsDominantSpeaker(true);
  41. jasmine.clock().tick(domaintSpeakerTime);
  42. speakerStats.setIsDominantSpeaker(false);
  43. }
  44. expect(speakerStats.getTotalDominantSpeakerTime())
  45. .toBe(domaintSpeakerTime * domaintSpeakerEvents);
  46. });
  47. });
  48. });