@webex/internal-plugin-metrics 3.12.0-next.8 → 3.12.0-task-refactor.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/call-diagnostic/call-diagnostic-metrics-latencies.js +34 -41
  2. package/dist/call-diagnostic/call-diagnostic-metrics-latencies.js.map +1 -1
  3. package/dist/call-diagnostic/call-diagnostic-metrics.js +0 -5
  4. package/dist/call-diagnostic/call-diagnostic-metrics.js.map +1 -1
  5. package/dist/call-diagnostic/call-diagnostic-metrics.util.js +4 -39
  6. package/dist/call-diagnostic/call-diagnostic-metrics.util.js.map +1 -1
  7. package/dist/call-diagnostic/config.js +1 -3
  8. package/dist/call-diagnostic/config.js.map +1 -1
  9. package/dist/generic-metrics.js +6 -8
  10. package/dist/generic-metrics.js.map +1 -1
  11. package/dist/index.js +0 -7
  12. package/dist/index.js.map +1 -1
  13. package/dist/metrics.js +1 -1
  14. package/dist/metrics.types.js.map +1 -1
  15. package/dist/new-metrics.js +20 -56
  16. package/dist/new-metrics.js.map +1 -1
  17. package/dist/types/call-diagnostic/call-diagnostic-metrics-latencies.d.ts +0 -8
  18. package/dist/types/call-diagnostic/call-diagnostic-metrics.d.ts +20 -34
  19. package/dist/types/call-diagnostic/call-diagnostic-metrics.util.d.ts +2 -23
  20. package/dist/types/call-diagnostic/config.d.ts +19 -2
  21. package/dist/types/config.d.ts +15 -15
  22. package/dist/types/index.d.ts +1 -2
  23. package/dist/types/metrics.types.d.ts +2 -2
  24. package/dist/types/new-metrics.d.ts +0 -12
  25. package/package.json +11 -11
  26. package/src/call-diagnostic/call-diagnostic-metrics-latencies.ts +44 -89
  27. package/src/call-diagnostic/call-diagnostic-metrics.ts +0 -6
  28. package/src/call-diagnostic/call-diagnostic-metrics.util.ts +2 -44
  29. package/src/call-diagnostic/config.ts +0 -2
  30. package/src/generic-metrics.ts +6 -6
  31. package/src/index.ts +0 -2
  32. package/src/metrics.types.ts +2 -2
  33. package/src/new-metrics.ts +0 -42
  34. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics-batcher.ts +11 -38
  35. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics-latencies.ts +301 -227
  36. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics.ts +0 -44
  37. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics.util.ts +3 -65
  38. package/dist/prelogin-metrics.js +0 -106
  39. package/dist/prelogin-metrics.js.map +0 -1
  40. package/dist/types/prelogin-metrics.d.ts +0 -47
  41. package/src/prelogin-metrics.ts +0 -94
  42. package/test/unit/spec/prelogin-metrics.ts +0 -132
@@ -143,7 +143,7 @@ describe('internal-plugin-metrics', () => {
143
143
  cdl.saveTimestamp({key: 'client.alert.removed', value: 50});
144
144
  const res = cdl.getDiffBetweenTimestamps('client.alert.displayed', 'client.alert.removed', {
145
145
  minimum: 0,
146
- maximum: 100,
146
+ maximum: 100
147
147
  });
148
148
  assert.deepEqual(res, 40);
149
149
  });
@@ -153,7 +153,7 @@ describe('internal-plugin-metrics', () => {
153
153
  cdl.saveTimestamp({key: 'client.alert.removed', value: 45});
154
154
  const res = cdl.getDiffBetweenTimestamps('client.alert.displayed', 'client.alert.removed', {
155
155
  minimum: 10,
156
- maximum: 100,
156
+ maximum: 100
157
157
  });
158
158
  assert.deepEqual(res, 10);
159
159
  });
@@ -163,7 +163,7 @@ describe('internal-plugin-metrics', () => {
163
163
  cdl.saveTimestamp({key: 'client.alert.removed', value: 210});
164
164
  const res = cdl.getDiffBetweenTimestamps('client.alert.displayed', 'client.alert.removed', {
165
165
  minimum: 0,
166
- maximum: 100,
166
+ maximum: 100
167
167
  });
168
168
  assert.deepEqual(res, 100);
169
169
  });
@@ -172,7 +172,7 @@ describe('internal-plugin-metrics', () => {
172
172
  cdl.saveTimestamp({key: 'client.alert.displayed', value: 50});
173
173
  cdl.saveTimestamp({key: 'client.alert.removed', value: 45});
174
174
  const res = cdl.getDiffBetweenTimestamps('client.alert.displayed', 'client.alert.removed', {
175
- maximum: 100,
175
+ maximum: 100
176
176
  });
177
177
  assert.deepEqual(res, 0);
178
178
  });
@@ -181,7 +181,7 @@ describe('internal-plugin-metrics', () => {
181
181
  cdl.saveTimestamp({key: 'client.alert.displayed', value: 10});
182
182
  cdl.saveTimestamp({key: 'client.alert.removed', value: 2000});
183
183
  const res = cdl.getDiffBetweenTimestamps('client.alert.displayed', 'client.alert.removed', {
184
- minimum: 5,
184
+ minimum: 5
185
185
  });
186
186
  assert.deepEqual(res, 1990);
187
187
  });
@@ -191,7 +191,7 @@ describe('internal-plugin-metrics', () => {
191
191
  cdl.saveTimestamp({key: 'client.alert.removed', value: 50});
192
192
  const res = cdl.getDiffBetweenTimestamps('client.alert.displayed', 'client.alert.removed', {
193
193
  minimum: 10,
194
- maximum: 1000,
194
+ maximum: 1000
195
195
  });
196
196
  assert.deepEqual(res, 10);
197
197
  });
@@ -200,7 +200,7 @@ describe('internal-plugin-metrics', () => {
200
200
  cdl.saveTimestamp({key: 'client.alert.displayed', value: 10});
201
201
  const res = cdl.getDiffBetweenTimestamps('client.alert.displayed', 'client.alert.removed', {
202
202
  minimum: 0,
203
- maximum: 100,
203
+ maximum: 100
204
204
  });
205
205
  assert.deepEqual(res, undefined);
206
206
  });
@@ -406,7 +406,7 @@ describe('internal-plugin-metrics', () => {
406
406
  });
407
407
 
408
408
  it('calculates getShowInterstitialTime correctly', () => {
409
- cdl.saveTimestamp({key: 'internal.client.meeting.interstitial-window.showed', value: 10});
409
+ cdl.saveTimestamp({key: 'client.interstitial-window.start-launch', value: 10});
410
410
  cdl.saveTimestamp({key: 'internal.client.interstitial-window.click.joinbutton', value: 20});
411
411
  assert.deepEqual(cdl.getShowInterstitialTime(), 10);
412
412
  });
@@ -513,56 +513,12 @@ describe('internal-plugin-metrics', () => {
513
513
  value: 10,
514
514
  });
515
515
  cdl.saveTimestamp({
516
- key: 'client.lobby.exited',
516
+ key: 'internal.host.meeting.participant.admitted',
517
517
  value: 20,
518
518
  });
519
519
  assert.deepEqual(cdl.getStayLobbyTime(), 10);
520
520
  });
521
521
 
522
- describe('getStayLobbyTimeCappedBy', () => {
523
- it('returns undefined when lobbyStartTimestamp is missing', () => {
524
- cdl.saveTimestamp({key: 'client.media-engine.ready', value: 100});
525
- assert.deepEqual(cdl.getStayLobbyTimeCappedBy('client.media-engine.ready'), undefined);
526
- });
527
-
528
- it('returns undefined when endTimestampKey is missing', () => {
529
- cdl.saveTimestamp({key: 'client.locus.join.response', value: 10});
530
- assert.deepEqual(cdl.getStayLobbyTimeCappedBy('client.media-engine.ready'), undefined);
531
- });
532
-
533
- it('uses maximumEndTimestamp when lobby end does not exist', () => {
534
- cdl.saveTimestamp({key: 'client.locus.join.response', value: 10});
535
- cdl.saveTimestamp({key: 'client.media-engine.ready', value: 50});
536
- assert.deepEqual(cdl.getStayLobbyTimeCappedBy('client.media-engine.ready'), 40);
537
- });
538
-
539
- it('uses lobby end when it is before maximumEndTimestamp', () => {
540
- cdl.saveTimestamp({key: 'client.locus.join.response', value: 10});
541
- cdl.saveTimestamp({key: 'client.lobby.exited', value: 30});
542
- cdl.saveTimestamp({key: 'client.media-engine.ready', value: 50});
543
- assert.deepEqual(cdl.getStayLobbyTimeCappedBy('client.media-engine.ready'), 20);
544
- });
545
-
546
- it('uses maximumEndTimestamp when lobby end is after it', () => {
547
- cdl.saveTimestamp({key: 'client.locus.join.response', value: 10});
548
- cdl.saveTimestamp({key: 'client.lobby.exited', value: 60});
549
- cdl.saveTimestamp({key: 'client.media-engine.ready', value: 50});
550
- assert.deepEqual(cdl.getStayLobbyTimeCappedBy('client.media-engine.ready'), 40);
551
- });
552
-
553
- it('clamps to 0 when result would be negative', () => {
554
- cdl.saveTimestamp({key: 'client.locus.join.response', value: 100});
555
- cdl.saveTimestamp({key: 'client.media-engine.ready', value: 50});
556
- assert.deepEqual(cdl.getStayLobbyTimeCappedBy('client.media-engine.ready'), 0);
557
- });
558
-
559
- it('clamps to MAX_INTEGER when result is very large', () => {
560
- cdl.saveTimestamp({key: 'client.locus.join.response', value: 0});
561
- cdl.saveTimestamp({key: 'client.media-engine.ready', value: 2147483648});
562
- assert.deepEqual(cdl.getStayLobbyTimeCappedBy('client.media-engine.ready'), 2147483647);
563
- });
564
- });
565
-
566
522
  it('calculates getPageJMT correctly', () => {
567
523
  cdl.saveLatency('internal.client.pageJMT', 10);
568
524
  assert.deepEqual(cdl.getPageJMT(), 10);
@@ -668,8 +624,15 @@ describe('internal-plugin-metrics', () => {
668
624
  });
669
625
 
670
626
  it('calculates getCallInitMediaEngineReady correctly', () => {
671
- sinon.stub(cdl, 'getInterstitialToMediaOKJMT').returns(42);
672
- assert.deepEqual(cdl.getCallInitMediaEngineReady(), 42);
627
+ cdl.saveTimestamp({
628
+ key: 'internal.client.interstitial-window.click.joinbutton',
629
+ value: 10,
630
+ });
631
+ cdl.saveTimestamp({
632
+ key: 'client.media-engine.ready',
633
+ value: 20,
634
+ });
635
+ assert.deepEqual(cdl.getCallInitMediaEngineReady(), 10);
673
636
  });
674
637
 
675
638
  it('calculates getTotalJMT correctly', () => {
@@ -693,56 +656,56 @@ describe('internal-plugin-metrics', () => {
693
656
  });
694
657
 
695
658
  it('calculates getTotalJMT correctly when clickToInterstitial is 0', () => {
696
- cdl.saveLatency('internal.click.to.interstitial', 0);
697
- cdl.saveTimestamp({
698
- key: 'internal.client.interstitial-window.click.joinbutton',
699
- value: 20,
700
- });
701
- cdl.saveTimestamp({
702
- key: 'client.locus.join.response',
703
- value: 40,
659
+ cdl.saveLatency('internal.click.to.interstitial', 0);
660
+ cdl.saveTimestamp({
661
+ key: 'internal.client.interstitial-window.click.joinbutton',
662
+ value: 20,
663
+ });
664
+ cdl.saveTimestamp({
665
+ key: 'client.locus.join.response',
666
+ value: 40,
667
+ });
668
+ assert.deepEqual(cdl.getTotalJMT(), 20);
704
669
  });
705
- assert.deepEqual(cdl.getTotalJMT(), 20);
706
- });
707
670
 
708
- it('calculates getTotalJMT correctly when interstitialClickJoinToJoinLocusResponse is 0', () => {
709
- cdl.saveTimestamp({
710
- key: 'internal.client.interstitial-window.click.joinbutton',
711
- value: 40,
712
- });
713
- cdl.saveLatency('internal.click.to.interstitial', 12);
714
- cdl.saveTimestamp({
715
- key: 'client.locus.join.response',
716
- value: 40,
671
+ it('calculates getTotalJMT correctly when interstitialToJoinOk is 0', () => {
672
+ cdl.saveTimestamp({
673
+ key: 'internal.client.interstitial-window.click.joinbutton',
674
+ value: 40,
675
+ });
676
+ cdl.saveLatency('internal.click.to.interstitial', 12);
677
+ cdl.saveTimestamp({
678
+ key: 'client.locus.join.response',
679
+ value: 40,
680
+ });
681
+ assert.deepEqual(cdl.getTotalJMT(), 12);
717
682
  });
718
- assert.deepEqual(cdl.getTotalJMT(), 12);
719
- });
720
683
 
721
- it('calculates getTotalJMT correctly when both clickToInterstitial and interstitialClickJoinToJoinLocusResponse are 0', () => {
722
- cdl.saveTimestamp({
723
- key: 'internal.client.interstitial-window.click.joinbutton',
724
- value: 40,
725
- });
726
- cdl.saveLatency('internal.click.to.interstitial', 0);
727
- cdl.saveTimestamp({
728
- key: 'client.locus.join.response',
729
- value: 40,
684
+ it('calculates getTotalJMT correctly when both clickToInterstitial and interstitialToJoinOk are 0', () => {
685
+ cdl.saveTimestamp({
686
+ key: 'internal.client.interstitial-window.click.joinbutton',
687
+ value: 40,
688
+ });
689
+ cdl.saveLatency('internal.click.to.interstitial', 0);
690
+ cdl.saveTimestamp({
691
+ key: 'client.locus.join.response',
692
+ value: 40,
693
+ });
694
+ assert.deepEqual(cdl.getTotalJMT(), 0);
730
695
  });
731
- assert.deepEqual(cdl.getTotalJMT(), 0);
732
- });
733
696
 
734
- it('calculates getTotalJMT correctly when both clickToInterstitial is not a number', () => {
735
- cdl.saveTimestamp({
736
- key: 'internal.client.interstitial-window.click.joinbutton',
737
- value: 40,
738
- });
739
- cdl.saveLatency('internal.click.to.interstitial', 'eleven' as unknown as number);
740
- cdl.saveTimestamp({
741
- key: 'client.locus.join.response',
742
- value: 40,
697
+ it('calculates getTotalJMT correctly when both clickToInterstitial is not a number', () => {
698
+ cdl.saveTimestamp({
699
+ key: 'internal.client.interstitial-window.click.joinbutton',
700
+ value: 40,
701
+ });
702
+ cdl.saveLatency('internal.click.to.interstitial', 'eleven' as unknown as number);
703
+ cdl.saveTimestamp({
704
+ key: 'client.locus.join.response',
705
+ value: 40,
706
+ });
707
+ assert.deepEqual(cdl.getTotalJMT(), undefined);
743
708
  });
744
- assert.deepEqual(cdl.getTotalJMT(), undefined);
745
- });
746
709
 
747
710
  it('calculates getTotalJMT correctly when it is greater than MAX_INTEGER', () => {
748
711
  cdl.saveTimestamp({
@@ -774,168 +737,283 @@ describe('internal-plugin-metrics', () => {
774
737
  key: 'client.locus.join.response',
775
738
  value: 40,
776
739
  });
777
- assert.deepEqual(cdl.getTotalJMTWithUserDelay(), 30);
740
+ assert.deepEqual(cdl.getTotalJMTWithUserDelay(), 45);
778
741
  });
779
742
 
780
- it('calculates getTotalJMTWithUserDelay correctly when clickToInterstitialWithUserDelay is 0', () => {
781
- cdl.saveLatency('internal.click.to.interstitial.with.user.delay', 0);
743
+ it('calculates getTotalJMTWithUserDelay correctly when clickToInterstitialWithUserDelay is 0', () => {
744
+ cdl.saveLatency('internal.click.to.interstitial.with.user.delay', 0);
745
+ cdl.saveTimestamp({
746
+ key: 'internal.client.interstitial-window.click.joinbutton',
747
+ value: 20,
748
+ });
749
+ cdl.saveTimestamp({
750
+ key: 'client.locus.join.response',
751
+ value: 40,
752
+ });
753
+ assert.deepEqual(cdl.getTotalJMTWithUserDelay(), 20);
754
+ });
755
+
756
+ it('calculates getTotalJMTWithUserDelay correctly when interstitialToJoinOk is 0', () => {
757
+ cdl.saveTimestamp({
758
+ key: 'internal.client.interstitial-window.click.joinbutton',
759
+ value: 40,
760
+ });
761
+ cdl.saveLatency('internal.click.to.interstitial.with.user.delay', 12);
762
+ cdl.saveTimestamp({
763
+ key: 'client.locus.join.response',
764
+ value: 40,
765
+ });
766
+ assert.deepEqual(cdl.getTotalJMTWithUserDelay(), 12);
767
+ });
768
+
769
+ it('calculates getTotalJMTWithUserDelay correctly when both clickToInterstitialWithUserDelay and interstitialToJoinOk are 0', () => {
770
+ cdl.saveTimestamp({
771
+ key: 'internal.client.interstitial-window.click.joinbutton',
772
+ value: 40,
773
+ });
774
+ cdl.saveLatency('internal.click.to.interstitial.with.user.delay', 0);
775
+ cdl.saveTimestamp({
776
+ key: 'client.locus.join.response',
777
+ value: 40,
778
+ });
779
+ assert.deepEqual(cdl.getTotalJMTWithUserDelay(), 0);
780
+ });
781
+
782
+ it('calculates getTotalJMTWithUserDelay correctly when both clickToInterstitialWithUserDelay is not a number', () => {
783
+ cdl.saveTimestamp({
784
+ key: 'internal.client.interstitial-window.click.joinbutton',
785
+ value: 40,
786
+ });
787
+ cdl.saveLatency('internal.click.to.interstitial.with.user.delay', 'eleven' as unknown as number);
788
+ cdl.saveTimestamp({
789
+ key: 'client.locus.join.response',
790
+ value: 40,
791
+ });
792
+ assert.deepEqual(cdl.getTotalJMTWithUserDelay(), undefined);
793
+ });
794
+
795
+ it('calculates getTotalJMTWithUserDelay correctly when it is greater than MAX_INTEGER', () => {
796
+ cdl.saveLatency('internal.click.to.interstitial.with.user.delay', 2147483648);
797
+ cdl.saveTimestamp({
798
+ key: 'internal.client.interstitial-window.click.joinbutton',
799
+ value: 20,
800
+ });
801
+ cdl.saveTimestamp({
802
+ key: 'client.locus.join.response',
803
+ value: 40,
804
+ });
805
+ assert.deepEqual(cdl.getTotalJMTWithUserDelay(), 2147483647);
806
+ });
807
+
808
+ it('calculates getTotalMediaJMT correctly', () => {
809
+ cdl.saveTimestamp({
810
+ key: 'internal.client.meeting.click.joinbutton',
811
+ value: 5,
812
+ });
782
813
  cdl.saveTimestamp({
783
814
  key: 'internal.client.meeting.interstitial-window.showed',
784
- value: 20,
815
+ value: 8,
785
816
  });
786
817
  cdl.saveTimestamp({
787
- key: 'client.locus.join.response',
788
- value: 40,
818
+ key: 'internal.client.interstitial-window.click.joinbutton',
819
+ value: 10,
789
820
  });
790
- assert.deepEqual(cdl.getTotalJMTWithUserDelay(), 20);
791
- });
792
-
793
- it('calculates getTotalJMTWithUserDelay correctly when interstitialShowedToJoinLocusResponse is 0', () => {
794
821
  cdl.saveTimestamp({
795
- key: 'internal.client.meeting.interstitial-window.showed',
796
- value: 40,
822
+ key: 'client.locus.join.request',
823
+ value: 12,
797
824
  });
798
- cdl.saveLatency('internal.click.to.interstitial.with.user.delay', 12);
799
825
  cdl.saveTimestamp({
800
826
  key: 'client.locus.join.response',
827
+ value: 20,
828
+ });
829
+ cdl.saveTimestamp({
830
+ key: 'internal.host.meeting.participant.admitted',
831
+ value: 24,
832
+ });
833
+ cdl.saveTimestamp({
834
+ key: 'client.ice.start',
835
+ value: 30,
836
+ });
837
+ cdl.saveTimestamp({
838
+ key: 'client.ice.end',
801
839
  value: 40,
802
840
  });
803
- assert.deepEqual(cdl.getTotalJMTWithUserDelay(), 12);
841
+ assert.deepEqual(cdl.getTotalMediaJMT(), 27);
804
842
  });
805
843
 
806
- it('calculates getTotalJMTWithUserDelay correctly when both clickToInterstitialWithUserDelay and interstitialShowedToJoinLocusResponse are 0', () => {
844
+ it('calculates getTotalMediaJMT correctly when it is greater than MAX_INTEGER', () => {
845
+ cdl.saveTimestamp({
846
+ key: 'internal.client.meeting.click.joinbutton',
847
+ value: 5,
848
+ });
807
849
  cdl.saveTimestamp({
808
850
  key: 'internal.client.meeting.interstitial-window.showed',
809
- value: 40,
851
+ value: 8,
852
+ });
853
+ cdl.saveTimestamp({
854
+ key: 'internal.client.interstitial-window.click.joinbutton',
855
+ value: 10,
856
+ });
857
+ cdl.saveTimestamp({
858
+ key: 'client.locus.join.request',
859
+ value: 12,
810
860
  });
811
- cdl.saveLatency('internal.click.to.interstitial.with.user.delay', 0);
812
861
  cdl.saveTimestamp({
813
862
  key: 'client.locus.join.response',
814
- value: 40,
863
+ value: 2147483700,
864
+ });
865
+ cdl.saveTimestamp({
866
+ key: 'internal.host.meeting.participant.admitted',
867
+ value: 2147483800,
815
868
  });
816
- assert.deepEqual(cdl.getTotalJMTWithUserDelay(), 0);
869
+ cdl.saveTimestamp({
870
+ key: 'client.ice.start',
871
+ value: 30,
872
+ });
873
+ cdl.saveTimestamp({
874
+ key: 'client.ice.end',
875
+ value: 100,
876
+ });
877
+ assert.deepEqual(cdl.getTotalMediaJMT(), 2147483647);
817
878
  });
818
879
 
819
- it('calculates getTotalJMTWithUserDelay correctly when both clickToInterstitialWithUserDelay is not a number', () => {
880
+ it('calculates getTotalMediaJMT correctly with allowMediaInLobby true', () => {
881
+ cdl.saveTimestamp({
882
+ key: 'internal.client.meeting.click.joinbutton',
883
+ value: 5,
884
+ options: {meetingId: 'meeting-id'},
885
+ });
820
886
  cdl.saveTimestamp({
821
887
  key: 'internal.client.meeting.interstitial-window.showed',
822
- value: 40,
888
+ value: 8,
889
+ });
890
+ cdl.saveTimestamp({
891
+ key: 'internal.client.interstitial-window.click.joinbutton',
892
+ value: 10,
893
+ });
894
+ cdl.saveTimestamp({
895
+ key: 'client.locus.join.request',
896
+ value: 12,
823
897
  });
824
- cdl.saveLatency(
825
- 'internal.click.to.interstitial.with.user.delay',
826
- 'eleven' as unknown as number
827
- );
828
898
  cdl.saveTimestamp({
829
899
  key: 'client.locus.join.response',
900
+ value: 20,
901
+ });
902
+ cdl.saveTimestamp({
903
+ key: 'internal.host.meeting.participant.admitted',
904
+ value: 24,
905
+ });
906
+ cdl.saveTimestamp({
907
+ key: 'client.ice.start',
908
+ value: 30,
909
+ });
910
+ cdl.saveTimestamp({
911
+ key: 'client.ice.end',
830
912
  value: 40,
831
913
  });
832
- assert.deepEqual(cdl.getTotalJMTWithUserDelay(), undefined);
914
+ assert.deepEqual(cdl.getTotalMediaJMT(), 31);
833
915
  });
834
916
 
835
- it('calculates getTotalJMTWithUserDelay correctly when it is greater than MAX_INTEGER', () => {
836
- cdl.saveLatency('internal.click.to.interstitial.with.user.delay', 2147483648);
917
+ it('calculates getTotalMediaJMT correctly with allowMediaInLobby true and it is greater than MAX_INTEGER', () => {
918
+ cdl.saveTimestamp({
919
+ key: 'internal.client.meeting.click.joinbutton',
920
+ value: 5,
921
+ options: {meetingId: 'meeting-id'},
922
+ });
837
923
  cdl.saveTimestamp({
838
924
  key: 'internal.client.meeting.interstitial-window.showed',
839
- value: 20,
925
+ value: 100,
926
+ });
927
+ cdl.saveTimestamp({
928
+ key: 'internal.client.interstitial-window.click.joinbutton',
929
+ value: 1000,
930
+ });
931
+ cdl.saveTimestamp({
932
+ key: 'client.locus.join.request',
933
+ value: 2000,
840
934
  });
841
935
  cdl.saveTimestamp({
842
936
  key: 'client.locus.join.response',
843
- value: 40,
937
+ value: 2147483700,
938
+ });
939
+ cdl.saveTimestamp({
940
+ key: 'internal.host.meeting.participant.admitted',
941
+ value: 2147483800,
942
+ });
943
+ cdl.saveTimestamp({
944
+ key: 'client.ice.start',
945
+ value: 2147483900,
946
+ });
947
+ cdl.saveTimestamp({
948
+ key: 'client.ice.end',
949
+ value: 4294967400,
844
950
  });
845
- assert.deepEqual(cdl.getTotalJMTWithUserDelay(), 2147483647);
846
- });
847
-
848
- it('calculates getTotalMediaJMT correctly with lobby exiting before media-engine.ready', () => {
849
- cdl.saveTimestamp({key: 'internal.client.meeting.click.joinbutton', value: 5});
850
- cdl.saveTimestamp({key: 'internal.client.meeting.interstitial-window.showed', value: 8});
851
- // clickToInterstitial = 8 - 5 = 3
852
- cdl.saveTimestamp({key: 'internal.client.interstitial-window.click.joinbutton', value: 10});
853
- cdl.saveTimestamp({key: 'client.media-engine.ready', value: 50});
854
- // interstitialClickJoinToMediaEngineReady = 50 - 10 = 40
855
- cdl.saveTimestamp({key: 'client.locus.join.response', value: 20});
856
- cdl.saveTimestamp({key: 'client.lobby.exited', value: 30});
857
- // stayLobbyTimeCappedByMediaEngineReady = min(30, 50) - 20 = 10
858
- // total = 3 + 40 - 10 = 33
859
- assert.deepEqual(cdl.getTotalMediaJMT(), 33);
860
- });
861
-
862
- it('calculates getTotalMediaJMT correctly without lobby', () => {
863
- cdl.saveTimestamp({key: 'internal.client.meeting.click.joinbutton', value: 5});
864
- cdl.saveTimestamp({key: 'internal.client.meeting.interstitial-window.showed', value: 8});
865
- // clickToInterstitial = 3
866
- cdl.saveTimestamp({key: 'internal.client.interstitial-window.click.joinbutton', value: 10});
867
- cdl.saveTimestamp({key: 'client.media-engine.ready', value: 50});
868
- // interstitialClickJoinToMediaEngineReady = 40
869
- cdl.saveTimestamp({key: 'client.locus.join.response', value: 20});
870
- // no client.lobby.exited
871
- // stayLobbyTimeCappedByMediaEngineReady = 50 - 20 = 30
872
- // total = 3 + 40 - 30 = 13
873
- assert.deepEqual(cdl.getTotalMediaJMT(), 13);
874
- });
875
-
876
- it('calculates getTotalMediaJMT correctly with lobby exiting after media-engine.ready', () => {
877
- cdl.saveTimestamp({key: 'internal.client.meeting.click.joinbutton', value: 5});
878
- cdl.saveTimestamp({key: 'internal.client.meeting.interstitial-window.showed', value: 8});
879
- // clickToInterstitial = 3
880
- cdl.saveTimestamp({key: 'internal.client.interstitial-window.click.joinbutton', value: 10});
881
- cdl.saveTimestamp({key: 'client.media-engine.ready', value: 50});
882
- // interstitialClickJoinToMediaEngineReady = 40
883
- cdl.saveTimestamp({key: 'client.locus.join.response', value: 20});
884
- cdl.saveTimestamp({key: 'client.lobby.exited', value: 60});
885
- // stayLobbyTimeCappedByMediaEngineReady = min(60, 50) - 20 = 30
886
- // total = 3 + 40 - 30 = 13
887
- assert.deepEqual(cdl.getTotalMediaJMT(), 13);
888
- });
889
-
890
- it('calculates getTotalMediaJMT correctly when it is greater than MAX_INTEGER', () => {
891
- cdl.saveTimestamp({key: 'internal.client.meeting.click.joinbutton', value: 5});
892
- cdl.saveTimestamp({key: 'internal.client.meeting.interstitial-window.showed', value: 8});
893
- cdl.saveTimestamp({key: 'internal.client.interstitial-window.click.joinbutton', value: 10});
894
- cdl.saveTimestamp({key: 'client.media-engine.ready', value: 4294967400});
895
- cdl.saveTimestamp({key: 'client.locus.join.response', value: 28});
896
- cdl.saveTimestamp({key: 'client.lobby.exited', value: 30});
897
951
  assert.deepEqual(cdl.getTotalMediaJMT(), 2147483647);
898
952
  });
899
953
 
900
- it('returns undefined for getTotalMediaJMT when media-engine.ready is missing', () => {
901
- cdl.saveTimestamp({key: 'internal.client.meeting.click.joinbutton', value: 5});
902
- cdl.saveTimestamp({key: 'internal.client.meeting.interstitial-window.showed', value: 8});
903
- cdl.saveTimestamp({key: 'internal.client.interstitial-window.click.joinbutton', value: 10});
904
- cdl.saveTimestamp({key: 'client.locus.join.response', value: 20});
905
- assert.deepEqual(cdl.getTotalMediaJMT(), undefined);
906
- });
907
-
908
954
  it('calculates getTotalMediaJMTWithUserDelay correctly', () => {
909
955
  cdl.saveLatency('internal.click.to.interstitial.with.user.delay', 7);
910
- // clickToInterstitialWithUserDelay = 7
911
- cdl.saveTimestamp({key: 'internal.client.meeting.interstitial-window.showed', value: 10});
912
- cdl.saveTimestamp({key: 'client.media-engine.ready', value: 50});
913
- // interstitialShowedToMediaEngineReady = 50 - 10 = 40
914
- // total = 7 + 40 = 47
915
- assert.deepEqual(cdl.getTotalMediaJMTWithUserDelay(), 47);
956
+ cdl.saveTimestamp({
957
+ key: 'internal.client.interstitial-window.click.joinbutton',
958
+ value: 10,
959
+ });
960
+ cdl.saveTimestamp({
961
+ key: 'client.locus.join.request',
962
+ value: 12,
963
+ });
964
+ cdl.saveTimestamp({
965
+ key: 'client.locus.join.response',
966
+ value: 20,
967
+ });
968
+ cdl.saveTimestamp({
969
+ key: 'internal.host.meeting.participant.admitted',
970
+ value: 24,
971
+ });
972
+ cdl.saveTimestamp({
973
+ key: 'client.ice.start',
974
+ value: 30,
975
+ });
976
+ cdl.saveTimestamp({
977
+ key: 'client.ice.end',
978
+ value: 40,
979
+ });
980
+ assert.deepEqual(cdl.getTotalMediaJMTWithUserDelay(), 35);
916
981
  });
917
982
 
918
983
  it('calculates getTotalMediaJMTWithUserDelay correctly for guest join', () => {
919
- cdl.saveTimestamp({key: 'internal.client.meeting.click.joinbutton', value: 5});
920
- cdl.saveTimestamp({key: 'internal.client.meeting.interstitial-window.showed', value: 8});
921
- // clickToInterstitialWithUserDelay = 8 - 5 = 3
922
- cdl.saveTimestamp({key: 'client.media-engine.ready', value: 50});
923
- // interstitialShowedToMediaEngineReady = 50 - 8 = 42
924
- // total = 3 + 42 = 45
925
- assert.deepEqual(cdl.getTotalMediaJMTWithUserDelay(), 45);
926
- });
927
-
928
- it('returns undefined for getTotalMediaJMTWithUserDelay when media-engine.ready is missing', () => {
929
- cdl.saveLatency('internal.click.to.interstitial.with.user.delay', 7);
930
- cdl.saveTimestamp({key: 'internal.client.meeting.interstitial-window.showed', value: 10});
931
- assert.deepEqual(cdl.getTotalMediaJMTWithUserDelay(), undefined);
932
- });
933
-
934
- it('calculates getTotalMediaJMTWithUserDelay correctly when it is greater than MAX_INTEGER', () => {
935
- cdl.saveLatency('internal.click.to.interstitial.with.user.delay', 2147483648);
936
- cdl.saveTimestamp({key: 'internal.client.meeting.interstitial-window.showed', value: 10});
937
- cdl.saveTimestamp({key: 'client.media-engine.ready', value: 50});
938
- assert.deepEqual(cdl.getTotalMediaJMTWithUserDelay(), 2147483647);
984
+ cdl.saveTimestamp({
985
+ key: 'internal.client.meeting.click.joinbutton',
986
+ value: 5,
987
+ });
988
+ cdl.saveTimestamp({
989
+ key: 'internal.client.meeting.interstitial-window.showed',
990
+ value: 8,
991
+ });
992
+ cdl.saveTimestamp({
993
+ key: 'internal.client.interstitial-window.click.joinbutton',
994
+ value: 10,
995
+ });
996
+ cdl.saveTimestamp({
997
+ key: 'client.locus.join.request',
998
+ value: 12,
999
+ });
1000
+ cdl.saveTimestamp({
1001
+ key: 'client.locus.join.response',
1002
+ value: 20,
1003
+ });
1004
+ cdl.saveTimestamp({
1005
+ key: 'internal.host.meeting.participant.admitted',
1006
+ value: 24,
1007
+ });
1008
+ cdl.saveTimestamp({
1009
+ key: 'client.ice.start',
1010
+ value: 30,
1011
+ });
1012
+ cdl.saveTimestamp({
1013
+ key: 'client.ice.end',
1014
+ value: 40,
1015
+ });
1016
+ assert.deepEqual(cdl.getTotalMediaJMTWithUserDelay(), 31);
939
1017
  });
940
1018
 
941
1019
  it('calculates getJoinConfJMT correctly', () => {
@@ -963,20 +1041,20 @@ describe('internal-plugin-metrics', () => {
963
1041
  // the maximum possible sum is 2400000, which is less than MAX_INTEGER (2147483647).
964
1042
  // This test should verify that the final clamping works by mocking the intermediate methods
965
1043
  // to return values that would sum to more than MAX_INTEGER.
966
-
1044
+
967
1045
  const originalGetJoinReqResp = cdl.getJoinReqResp;
968
1046
  const originalGetICESetupTime = cdl.getICESetupTime;
969
-
1047
+
970
1048
  // Mock the methods to return large values that would exceed MAX_INTEGER when summed
971
1049
  cdl.getJoinReqResp = () => 1500000000;
972
1050
  cdl.getICESetupTime = () => 1000000000;
973
-
1051
+
974
1052
  const result = cdl.getJoinConfJMT();
975
-
1053
+
976
1054
  // Restore original methods
977
1055
  cdl.getJoinReqResp = originalGetJoinReqResp;
978
1056
  cdl.getICESetupTime = originalGetICESetupTime;
979
-
1057
+
980
1058
  assert.deepEqual(result, 2147483647);
981
1059
  });
982
1060
 
@@ -1062,7 +1140,7 @@ describe('internal-plugin-metrics', () => {
1062
1140
  value: 10,
1063
1141
  });
1064
1142
  cdl.saveTimestamp({
1065
- key: 'client.lobby.exited',
1143
+ key: 'internal.host.meeting.participant.admitted',
1066
1144
  value: 12,
1067
1145
  });
1068
1146
  cdl.saveTimestamp({
@@ -1082,8 +1160,8 @@ describe('internal-plugin-metrics', () => {
1082
1160
  value: 10,
1083
1161
  });
1084
1162
  cdl.saveTimestamp({
1085
- key: 'client.lobby.exited',
1086
- value: 10,
1163
+ key: 'internal.host.meeting.participant.admitted',
1164
+ value: 12,
1087
1165
  });
1088
1166
  cdl.saveTimestamp({
1089
1167
  key: 'client.ice.end',
@@ -1097,15 +1175,11 @@ describe('internal-plugin-metrics', () => {
1097
1175
  key: 'internal.client.interstitial-window.click.joinbutton',
1098
1176
  value: 4,
1099
1177
  });
1100
- cdl.saveTimestamp({
1101
- key: 'client.locus.join.response',
1102
- value: 8,
1103
- });
1104
1178
  cdl.saveTimestamp({
1105
1179
  key: 'client.ice.end',
1106
1180
  value: 14,
1107
1181
  });
1108
- assert.deepEqual(cdl.getInterstitialToMediaOKJMT(), 4);
1182
+ assert.deepEqual(cdl.getInterstitialToMediaOKJMT(), 10);
1109
1183
  });
1110
1184
 
1111
1185
  it('calculates getShareDuration correctly', () => {