@webex/internal-plugin-metrics 3.12.0-mobius-socket.2 → 3.12.0-mobius-socket.3
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.
- package/dist/call-diagnostic/call-diagnostic-metrics-latencies.js +68 -51
- package/dist/call-diagnostic/call-diagnostic-metrics-latencies.js.map +1 -1
- package/dist/call-diagnostic/call-diagnostic-metrics.js +7 -2
- package/dist/call-diagnostic/call-diagnostic-metrics.js.map +1 -1
- package/dist/call-diagnostic/call-diagnostic-metrics.util.js +2 -2
- package/dist/call-diagnostic/call-diagnostic-metrics.util.js.map +1 -1
- package/dist/call-diagnostic/config.js +2 -1
- package/dist/call-diagnostic/config.js.map +1 -1
- package/dist/metrics.js +1 -1
- package/dist/metrics.types.js.map +1 -1
- package/dist/types/call-diagnostic/call-diagnostic-metrics-latencies.d.ts +9 -0
- package/dist/types/call-diagnostic/call-diagnostic-metrics.d.ts +16 -13
- package/dist/types/metrics.types.d.ts +2 -2
- package/package.json +11 -11
- package/src/call-diagnostic/call-diagnostic-metrics-latencies.ts +140 -69
- package/src/call-diagnostic/call-diagnostic-metrics.ts +6 -0
- package/src/call-diagnostic/call-diagnostic-metrics.util.ts +2 -1
- package/src/call-diagnostic/config.ts +1 -0
- package/src/metrics.types.ts +1 -1
- package/test/unit/spec/call-diagnostic/call-diagnostic-metrics-batcher.ts +14 -2
- package/test/unit/spec/call-diagnostic/call-diagnostic-metrics-latencies.ts +243 -288
- package/test/unit/spec/call-diagnostic/call-diagnostic-metrics.ts +403 -157
|
@@ -406,14 +406,16 @@ describe('internal-plugin-metrics', () => {
|
|
|
406
406
|
});
|
|
407
407
|
|
|
408
408
|
it('calculates getShowInterstitialTime correctly', () => {
|
|
409
|
-
cdl.saveTimestamp({key: 'client.interstitial-window.
|
|
409
|
+
cdl.saveTimestamp({key: 'internal.client.meeting.interstitial-window.showed', value: 10});
|
|
410
410
|
cdl.saveTimestamp({key: 'internal.client.interstitial-window.click.joinbutton', value: 20});
|
|
411
411
|
assert.deepEqual(cdl.getShowInterstitialTime(), 10);
|
|
412
412
|
});
|
|
413
413
|
|
|
414
414
|
it('calculates getCallInitJoinReq correctly', () => {
|
|
415
|
+
cdl.saveTimestamp({key: 'internal.client.meeting.interstitial-window.showed', value: 5});
|
|
415
416
|
cdl.saveTimestamp({key: 'internal.client.interstitial-window.click.joinbutton', value: 10});
|
|
416
417
|
cdl.saveTimestamp({key: 'client.locus.join.request', value: 20});
|
|
418
|
+
// showedToJoinReq = 20-5 = 15, showInterstitialTime = 10-5 = 5, result = 15-5 = 10
|
|
417
419
|
assert.deepEqual(cdl.getCallInitJoinReq(), 10);
|
|
418
420
|
});
|
|
419
421
|
|
|
@@ -509,7 +511,7 @@ describe('internal-plugin-metrics', () => {
|
|
|
509
511
|
|
|
510
512
|
it('calculates getStayLobbyTime correctly', () => {
|
|
511
513
|
cdl.saveTimestamp({
|
|
512
|
-
key: 'client.
|
|
514
|
+
key: 'client.lobby.entered',
|
|
513
515
|
value: 10,
|
|
514
516
|
});
|
|
515
517
|
cdl.saveTimestamp({
|
|
@@ -519,6 +521,50 @@ describe('internal-plugin-metrics', () => {
|
|
|
519
521
|
assert.deepEqual(cdl.getStayLobbyTime(), 10);
|
|
520
522
|
});
|
|
521
523
|
|
|
524
|
+
describe('getStayLobbyTimeCappedBy', () => {
|
|
525
|
+
it('returns 0 when lobbyStartTimestamp is missing', () => {
|
|
526
|
+
cdl.saveTimestamp({key: 'client.media-engine.ready', value: 100});
|
|
527
|
+
assert.deepEqual(cdl.getStayLobbyTimeCappedBy('client.media-engine.ready'), 0);
|
|
528
|
+
});
|
|
529
|
+
|
|
530
|
+
it('returns undefined when endTimestampKey is missing', () => {
|
|
531
|
+
cdl.saveTimestamp({key: 'client.lobby.entered', value: 10});
|
|
532
|
+
assert.deepEqual(cdl.getStayLobbyTimeCappedBy('client.media-engine.ready'), undefined);
|
|
533
|
+
});
|
|
534
|
+
|
|
535
|
+
it('uses maximumEndTimestamp when lobby end does not exist', () => {
|
|
536
|
+
cdl.saveTimestamp({key: 'client.lobby.entered', value: 10});
|
|
537
|
+
cdl.saveTimestamp({key: 'client.media-engine.ready', value: 50});
|
|
538
|
+
assert.deepEqual(cdl.getStayLobbyTimeCappedBy('client.media-engine.ready'), 40);
|
|
539
|
+
});
|
|
540
|
+
|
|
541
|
+
it('uses lobby end when it is before maximumEndTimestamp', () => {
|
|
542
|
+
cdl.saveTimestamp({key: 'client.lobby.entered', value: 10});
|
|
543
|
+
cdl.saveTimestamp({key: 'client.lobby.exited', value: 30});
|
|
544
|
+
cdl.saveTimestamp({key: 'client.media-engine.ready', value: 50});
|
|
545
|
+
assert.deepEqual(cdl.getStayLobbyTimeCappedBy('client.media-engine.ready'), 20);
|
|
546
|
+
});
|
|
547
|
+
|
|
548
|
+
it('uses maximumEndTimestamp when lobby end is after it', () => {
|
|
549
|
+
cdl.saveTimestamp({key: 'client.lobby.entered', value: 10});
|
|
550
|
+
cdl.saveTimestamp({key: 'client.lobby.exited', value: 60});
|
|
551
|
+
cdl.saveTimestamp({key: 'client.media-engine.ready', value: 50});
|
|
552
|
+
assert.deepEqual(cdl.getStayLobbyTimeCappedBy('client.media-engine.ready'), 40);
|
|
553
|
+
});
|
|
554
|
+
|
|
555
|
+
it('clamps to 0 when result would be negative', () => {
|
|
556
|
+
cdl.saveTimestamp({key: 'client.lobby.entered', value: 100});
|
|
557
|
+
cdl.saveTimestamp({key: 'client.media-engine.ready', value: 50});
|
|
558
|
+
assert.deepEqual(cdl.getStayLobbyTimeCappedBy('client.media-engine.ready'), 0);
|
|
559
|
+
});
|
|
560
|
+
|
|
561
|
+
it('clamps to MAX_INTEGER when result is very large', () => {
|
|
562
|
+
cdl.saveTimestamp({key: 'client.lobby.entered', value: 0});
|
|
563
|
+
cdl.saveTimestamp({key: 'client.media-engine.ready', value: 2147483648});
|
|
564
|
+
assert.deepEqual(cdl.getStayLobbyTimeCappedBy('client.media-engine.ready'), 2147483647);
|
|
565
|
+
});
|
|
566
|
+
});
|
|
567
|
+
|
|
522
568
|
it('calculates getPageJMT correctly', () => {
|
|
523
569
|
cdl.saveLatency('internal.client.pageJMT', 10);
|
|
524
570
|
assert.deepEqual(cdl.getPageJMT(), 10);
|
|
@@ -530,76 +576,40 @@ describe('internal-plugin-metrics', () => {
|
|
|
530
576
|
});
|
|
531
577
|
|
|
532
578
|
it('calculates getClickToInterstitial correctly', () => {
|
|
533
|
-
cdl.saveTimestamp({
|
|
534
|
-
key: 'internal.client.meeting.click.joinbutton',
|
|
535
|
-
value: 10,
|
|
536
|
-
});
|
|
537
|
-
cdl.saveTimestamp({
|
|
538
|
-
key: 'internal.client.meeting.interstitial-window.showed',
|
|
539
|
-
value: 20,
|
|
540
|
-
});
|
|
541
|
-
assert.deepEqual(cdl.getClickToInterstitial(), 10);
|
|
542
|
-
});
|
|
543
|
-
|
|
544
|
-
it('calculates getClickToInterstitial without join button timestamp', () => {
|
|
545
579
|
cdl.saveLatency('internal.click.to.interstitial', 5);
|
|
546
|
-
cdl.saveTimestamp({
|
|
547
|
-
key: 'internal.client.meeting.interstitial-window.showed',
|
|
548
|
-
value: 20,
|
|
549
|
-
});
|
|
550
580
|
assert.deepEqual(cdl.getClickToInterstitial(), 5);
|
|
551
581
|
});
|
|
552
582
|
|
|
553
|
-
it('calculates getClickToInterstitial
|
|
583
|
+
it('calculates getClickToInterstitial correctly when it is 0', () => {
|
|
554
584
|
cdl.saveLatency('internal.click.to.interstitial', 0);
|
|
555
|
-
cdl.saveTimestamp({
|
|
556
|
-
key: 'internal.client.meeting.interstitial-window.showed',
|
|
557
|
-
value: 20,
|
|
558
|
-
});
|
|
559
585
|
assert.deepEqual(cdl.getClickToInterstitial(), 0);
|
|
560
586
|
});
|
|
561
587
|
|
|
562
|
-
it('calculates getClickToInterstitial
|
|
588
|
+
it('calculates getClickToInterstitial correctly when it is greater than MAX_INTEGER', () => {
|
|
563
589
|
cdl.saveLatency('internal.click.to.interstitial', 2147483648);
|
|
564
590
|
assert.deepEqual(cdl.getClickToInterstitial(), 2147483647);
|
|
565
591
|
});
|
|
566
592
|
|
|
567
593
|
it('calculates getClickToInterstitialWithUserDelay correctly', () => {
|
|
568
|
-
cdl.saveTimestamp({
|
|
569
|
-
key: 'internal.client.meeting.click.joinbutton',
|
|
570
|
-
value: 10,
|
|
571
|
-
});
|
|
572
|
-
cdl.saveTimestamp({
|
|
573
|
-
key: 'internal.client.meeting.interstitial-window.showed',
|
|
574
|
-
value: 20,
|
|
575
|
-
});
|
|
576
|
-
assert.deepEqual(cdl.getClickToInterstitialWithUserDelay(), 10);
|
|
577
|
-
});
|
|
578
|
-
|
|
579
|
-
it('calculates getClickToInterstitialWithUserDelay without join button timestamp', () => {
|
|
580
594
|
cdl.saveLatency('internal.click.to.interstitial.with.user.delay', 5);
|
|
581
|
-
cdl.saveTimestamp({
|
|
582
|
-
key: 'internal.client.meeting.interstitial-window.showed',
|
|
583
|
-
value: 20,
|
|
584
|
-
});
|
|
585
595
|
assert.deepEqual(cdl.getClickToInterstitialWithUserDelay(), 5);
|
|
586
596
|
});
|
|
587
597
|
|
|
588
|
-
it('calculates getClickToInterstitialWithUserDelay
|
|
598
|
+
it('calculates getClickToInterstitialWithUserDelay correctly when it is 0', () => {
|
|
589
599
|
cdl.saveLatency('internal.click.to.interstitial.with.user.delay', 0);
|
|
590
|
-
cdl.saveTimestamp({
|
|
591
|
-
key: 'internal.client.meeting.interstitial-window.showed',
|
|
592
|
-
value: 20,
|
|
593
|
-
});
|
|
594
600
|
assert.deepEqual(cdl.getClickToInterstitialWithUserDelay(), 0);
|
|
595
601
|
});
|
|
596
602
|
|
|
597
|
-
it('calculates getClickToInterstitialWithUserDelay
|
|
603
|
+
it('calculates getClickToInterstitialWithUserDelay correctly when it is greater than MAX_INTEGER', () => {
|
|
598
604
|
cdl.saveLatency('internal.click.to.interstitial.with.user.delay', 2147483648);
|
|
599
605
|
assert.deepEqual(cdl.getClickToInterstitialWithUserDelay(), 2147483647);
|
|
600
606
|
});
|
|
601
607
|
|
|
602
608
|
it('calculates getInterstitialToJoinOK correctly', () => {
|
|
609
|
+
cdl.saveTimestamp({
|
|
610
|
+
key: 'internal.client.meeting.interstitial-window.showed',
|
|
611
|
+
value: 5,
|
|
612
|
+
});
|
|
603
613
|
cdl.saveTimestamp({
|
|
604
614
|
key: 'internal.client.interstitial-window.click.joinbutton',
|
|
605
615
|
value: 10,
|
|
@@ -608,12 +618,13 @@ describe('internal-plugin-metrics', () => {
|
|
|
608
618
|
key: 'client.locus.join.response',
|
|
609
619
|
value: 20,
|
|
610
620
|
});
|
|
621
|
+
// showedToJoinResp = 20-5 = 15, showInterstitialTime = 10-5 = 5, result = 15-5 = 10
|
|
611
622
|
assert.deepEqual(cdl.getInterstitialToJoinOK(), 10);
|
|
612
623
|
});
|
|
613
624
|
|
|
614
625
|
it('calculates getInterstitialToJoinOK correctly when one value is not a number', () => {
|
|
615
626
|
cdl.saveTimestamp({
|
|
616
|
-
key: 'internal.client.interstitial-window.
|
|
627
|
+
key: 'internal.client.meeting.interstitial-window.showed',
|
|
617
628
|
value: 'ten' as unknown as number,
|
|
618
629
|
});
|
|
619
630
|
cdl.saveTimestamp({
|
|
@@ -624,22 +635,12 @@ describe('internal-plugin-metrics', () => {
|
|
|
624
635
|
});
|
|
625
636
|
|
|
626
637
|
it('calculates getCallInitMediaEngineReady correctly', () => {
|
|
627
|
-
cdl.
|
|
628
|
-
|
|
629
|
-
value: 10,
|
|
630
|
-
});
|
|
631
|
-
cdl.saveTimestamp({
|
|
632
|
-
key: 'client.media-engine.ready',
|
|
633
|
-
value: 20,
|
|
634
|
-
});
|
|
635
|
-
assert.deepEqual(cdl.getCallInitMediaEngineReady(), 10);
|
|
638
|
+
sinon.stub(cdl, 'getInterstitialToMediaOKJMT').returns(42);
|
|
639
|
+
assert.deepEqual(cdl.getCallInitMediaEngineReady(), 42);
|
|
636
640
|
});
|
|
637
641
|
|
|
638
642
|
it('calculates getTotalJMT correctly', () => {
|
|
639
|
-
cdl.
|
|
640
|
-
key: 'internal.client.interstitial-window.click.joinbutton',
|
|
641
|
-
value: 5,
|
|
642
|
-
});
|
|
643
|
+
cdl.saveLatency('internal.click.to.interstitial', 10);
|
|
643
644
|
cdl.saveTimestamp({
|
|
644
645
|
key: 'internal.client.meeting.click.joinbutton',
|
|
645
646
|
value: 10,
|
|
@@ -648,29 +649,39 @@ describe('internal-plugin-metrics', () => {
|
|
|
648
649
|
key: 'internal.client.meeting.interstitial-window.showed',
|
|
649
650
|
value: 20,
|
|
650
651
|
});
|
|
652
|
+
cdl.saveTimestamp({
|
|
653
|
+
key: 'internal.client.interstitial-window.click.joinbutton',
|
|
654
|
+
value: 25,
|
|
655
|
+
});
|
|
651
656
|
cdl.saveTimestamp({
|
|
652
657
|
key: 'client.locus.join.response',
|
|
653
658
|
value: 40,
|
|
654
659
|
});
|
|
655
|
-
|
|
660
|
+
// clickToInterstitial = 20-10 = 10
|
|
661
|
+
// showedToJoinLocusResponse = 40-20 = 20
|
|
662
|
+
// showInterstitialTime = 25-20 = 5
|
|
663
|
+
// total = 10 + 20 - 5 = 25
|
|
664
|
+
assert.deepEqual(cdl.getTotalJMT(), 25);
|
|
656
665
|
});
|
|
657
666
|
|
|
658
667
|
it('calculates getTotalJMT correctly when clickToInterstitial is 0', () => {
|
|
659
668
|
cdl.saveLatency('internal.click.to.interstitial', 0);
|
|
660
669
|
cdl.saveTimestamp({
|
|
661
|
-
key: 'internal.client.interstitial-window.
|
|
670
|
+
key: 'internal.client.meeting.interstitial-window.showed',
|
|
662
671
|
value: 20,
|
|
663
672
|
});
|
|
664
673
|
cdl.saveTimestamp({
|
|
665
674
|
key: 'client.locus.join.response',
|
|
666
675
|
value: 40,
|
|
667
676
|
});
|
|
677
|
+
// showedToJoinLocusResponse = 40-20 = 20, showInterstitialTime = 0
|
|
678
|
+
// total = 0 + 20 - 0 = 20
|
|
668
679
|
assert.deepEqual(cdl.getTotalJMT(), 20);
|
|
669
680
|
});
|
|
670
681
|
|
|
671
|
-
it('calculates getTotalJMT correctly when
|
|
682
|
+
it('calculates getTotalJMT correctly when interstitialClickJoinToJoinLocusResponse is 0', () => {
|
|
672
683
|
cdl.saveTimestamp({
|
|
673
|
-
key: 'internal.client.interstitial-window.
|
|
684
|
+
key: 'internal.client.meeting.interstitial-window.showed',
|
|
674
685
|
value: 40,
|
|
675
686
|
});
|
|
676
687
|
cdl.saveLatency('internal.click.to.interstitial', 12);
|
|
@@ -678,12 +689,14 @@ describe('internal-plugin-metrics', () => {
|
|
|
678
689
|
key: 'client.locus.join.response',
|
|
679
690
|
value: 40,
|
|
680
691
|
});
|
|
692
|
+
// showedToJoinLocusResponse = 0, showInterstitialTime = 0
|
|
693
|
+
// total = 12 + 0 - 0 = 12
|
|
681
694
|
assert.deepEqual(cdl.getTotalJMT(), 12);
|
|
682
695
|
});
|
|
683
696
|
|
|
684
|
-
it('calculates getTotalJMT correctly when both clickToInterstitial and
|
|
697
|
+
it('calculates getTotalJMT correctly when both clickToInterstitial and interstitialClickJoinToJoinLocusResponse are 0', () => {
|
|
685
698
|
cdl.saveTimestamp({
|
|
686
|
-
key: 'internal.client.interstitial-window.
|
|
699
|
+
key: 'internal.client.meeting.interstitial-window.showed',
|
|
687
700
|
value: 40,
|
|
688
701
|
});
|
|
689
702
|
cdl.saveLatency('internal.click.to.interstitial', 0);
|
|
@@ -696,7 +709,7 @@ describe('internal-plugin-metrics', () => {
|
|
|
696
709
|
|
|
697
710
|
it('calculates getTotalJMT correctly when both clickToInterstitial is not a number', () => {
|
|
698
711
|
cdl.saveTimestamp({
|
|
699
|
-
key: 'internal.client.interstitial-window.
|
|
712
|
+
key: 'internal.client.meeting.interstitial-window.showed',
|
|
700
713
|
value: 40,
|
|
701
714
|
});
|
|
702
715
|
cdl.saveLatency('internal.click.to.interstitial', 'eleven' as unknown as number);
|
|
@@ -709,7 +722,7 @@ describe('internal-plugin-metrics', () => {
|
|
|
709
722
|
|
|
710
723
|
it('calculates getTotalJMT correctly when it is greater than MAX_INTEGER', () => {
|
|
711
724
|
cdl.saveTimestamp({
|
|
712
|
-
key: 'internal.client.interstitial-window.
|
|
725
|
+
key: 'internal.client.meeting.interstitial-window.showed',
|
|
713
726
|
value: 5,
|
|
714
727
|
});
|
|
715
728
|
cdl.saveTimestamp({
|
|
@@ -721,14 +734,7 @@ describe('internal-plugin-metrics', () => {
|
|
|
721
734
|
});
|
|
722
735
|
|
|
723
736
|
it('calculates getTotalJMTWithUserDelay correctly', () => {
|
|
724
|
-
cdl.
|
|
725
|
-
key: 'internal.client.interstitial-window.click.joinbutton',
|
|
726
|
-
value: 5,
|
|
727
|
-
});
|
|
728
|
-
cdl.saveTimestamp({
|
|
729
|
-
key: 'internal.client.meeting.click.joinbutton',
|
|
730
|
-
value: 10,
|
|
731
|
-
});
|
|
737
|
+
cdl.saveLatency('internal.click.to.interstitial.with.user.delay', 10);
|
|
732
738
|
cdl.saveTimestamp({
|
|
733
739
|
key: 'internal.client.meeting.interstitial-window.showed',
|
|
734
740
|
value: 20,
|
|
@@ -737,13 +743,13 @@ describe('internal-plugin-metrics', () => {
|
|
|
737
743
|
key: 'client.locus.join.response',
|
|
738
744
|
value: 40,
|
|
739
745
|
});
|
|
740
|
-
assert.deepEqual(cdl.getTotalJMTWithUserDelay(),
|
|
746
|
+
assert.deepEqual(cdl.getTotalJMTWithUserDelay(), 30);
|
|
741
747
|
});
|
|
742
748
|
|
|
743
749
|
it('calculates getTotalJMTWithUserDelay correctly when clickToInterstitialWithUserDelay is 0', () => {
|
|
744
750
|
cdl.saveLatency('internal.click.to.interstitial.with.user.delay', 0);
|
|
745
751
|
cdl.saveTimestamp({
|
|
746
|
-
key: 'internal.client.interstitial-window.
|
|
752
|
+
key: 'internal.client.meeting.interstitial-window.showed',
|
|
747
753
|
value: 20,
|
|
748
754
|
});
|
|
749
755
|
cdl.saveTimestamp({
|
|
@@ -753,9 +759,9 @@ describe('internal-plugin-metrics', () => {
|
|
|
753
759
|
assert.deepEqual(cdl.getTotalJMTWithUserDelay(), 20);
|
|
754
760
|
});
|
|
755
761
|
|
|
756
|
-
it('calculates getTotalJMTWithUserDelay correctly when
|
|
762
|
+
it('calculates getTotalJMTWithUserDelay correctly when interstitialShowedToJoinLocusResponse is 0', () => {
|
|
757
763
|
cdl.saveTimestamp({
|
|
758
|
-
key: 'internal.client.interstitial-window.
|
|
764
|
+
key: 'internal.client.meeting.interstitial-window.showed',
|
|
759
765
|
value: 40,
|
|
760
766
|
});
|
|
761
767
|
cdl.saveLatency('internal.click.to.interstitial.with.user.delay', 12);
|
|
@@ -766,9 +772,9 @@ describe('internal-plugin-metrics', () => {
|
|
|
766
772
|
assert.deepEqual(cdl.getTotalJMTWithUserDelay(), 12);
|
|
767
773
|
});
|
|
768
774
|
|
|
769
|
-
it('calculates getTotalJMTWithUserDelay correctly when both clickToInterstitialWithUserDelay and
|
|
775
|
+
it('calculates getTotalJMTWithUserDelay correctly when both clickToInterstitialWithUserDelay and interstitialShowedToJoinLocusResponse are 0', () => {
|
|
770
776
|
cdl.saveTimestamp({
|
|
771
|
-
key: 'internal.client.interstitial-window.
|
|
777
|
+
key: 'internal.client.meeting.interstitial-window.showed',
|
|
772
778
|
value: 40,
|
|
773
779
|
});
|
|
774
780
|
cdl.saveLatency('internal.click.to.interstitial.with.user.delay', 0);
|
|
@@ -781,7 +787,7 @@ describe('internal-plugin-metrics', () => {
|
|
|
781
787
|
|
|
782
788
|
it('calculates getTotalJMTWithUserDelay correctly when both clickToInterstitialWithUserDelay is not a number', () => {
|
|
783
789
|
cdl.saveTimestamp({
|
|
784
|
-
key: 'internal.client.interstitial-window.
|
|
790
|
+
key: 'internal.client.meeting.interstitial-window.showed',
|
|
785
791
|
value: 40,
|
|
786
792
|
});
|
|
787
793
|
cdl.saveLatency(
|
|
@@ -798,7 +804,7 @@ describe('internal-plugin-metrics', () => {
|
|
|
798
804
|
it('calculates getTotalJMTWithUserDelay correctly when it is greater than MAX_INTEGER', () => {
|
|
799
805
|
cdl.saveLatency('internal.click.to.interstitial.with.user.delay', 2147483648);
|
|
800
806
|
cdl.saveTimestamp({
|
|
801
|
-
key: 'internal.client.interstitial-window.
|
|
807
|
+
key: 'internal.client.meeting.interstitial-window.showed',
|
|
802
808
|
value: 20,
|
|
803
809
|
});
|
|
804
810
|
cdl.saveTimestamp({
|
|
@@ -808,215 +814,111 @@ describe('internal-plugin-metrics', () => {
|
|
|
808
814
|
assert.deepEqual(cdl.getTotalJMTWithUserDelay(), 2147483647);
|
|
809
815
|
});
|
|
810
816
|
|
|
811
|
-
it('calculates getTotalMediaJMT correctly', () => {
|
|
812
|
-
cdl.
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
});
|
|
816
|
-
cdl.saveTimestamp({
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
});
|
|
820
|
-
cdl.saveTimestamp({
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
});
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
cdl.
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
cdl.
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
});
|
|
844
|
-
|
|
817
|
+
it('calculates getTotalMediaJMT correctly with lobby exiting before media-engine.ready', () => {
|
|
818
|
+
cdl.saveLatency('internal.click.to.interstitial', 3);
|
|
819
|
+
// clickToInterstitial = 3
|
|
820
|
+
cdl.saveTimestamp({key: 'internal.client.meeting.interstitial-window.showed', value: 8});
|
|
821
|
+
cdl.saveTimestamp({key: 'internal.client.interstitial-window.click.joinbutton', value: 10});
|
|
822
|
+
cdl.saveTimestamp({key: 'client.media-engine.ready', value: 50});
|
|
823
|
+
// interstitialShowedToMediaEngineReady = 50 - 8 = 42
|
|
824
|
+
// showInterstitialTime = 10 - 8 = 2
|
|
825
|
+
cdl.saveTimestamp({key: 'client.lobby.entered', value: 20});
|
|
826
|
+
cdl.saveTimestamp({key: 'client.lobby.exited', value: 30});
|
|
827
|
+
// stayLobbyTimeCappedByMediaEngineReady = min(30, 50) - 20 = 10
|
|
828
|
+
// total = 3 + 42 - 2 - 10 = 33
|
|
829
|
+
assert.deepEqual(cdl.getTotalMediaJMT(), 33);
|
|
830
|
+
});
|
|
831
|
+
|
|
832
|
+
it('calculates getTotalMediaJMT correctly without lobby', () => {
|
|
833
|
+
cdl.saveLatency('internal.click.to.interstitial', 3);
|
|
834
|
+
// clickToInterstitial = 3
|
|
835
|
+
cdl.saveTimestamp({key: 'internal.client.meeting.interstitial-window.showed', value: 8});
|
|
836
|
+
cdl.saveTimestamp({key: 'internal.client.interstitial-window.click.joinbutton', value: 10});
|
|
837
|
+
cdl.saveTimestamp({key: 'client.media-engine.ready', value: 50});
|
|
838
|
+
// interstitialShowedToMediaEngineReady = 50 - 8 = 42
|
|
839
|
+
// showInterstitialTime = 10 - 8 = 2
|
|
840
|
+
// no client.lobby.entered → stayLobbyTimeCappedByMediaEngineReady = 0
|
|
841
|
+
// total = 3 + 42 - 2 - 0 = 43
|
|
842
|
+
assert.deepEqual(cdl.getTotalMediaJMT(), 43);
|
|
843
|
+
});
|
|
844
|
+
|
|
845
|
+
it('calculates getTotalMediaJMT correctly with lobby exiting after media-engine.ready', () => {
|
|
846
|
+
cdl.saveLatency('internal.click.to.interstitial', 3);
|
|
847
|
+
// clickToInterstitial = 3
|
|
848
|
+
cdl.saveTimestamp({key: 'internal.client.meeting.interstitial-window.showed', value: 8});
|
|
849
|
+
cdl.saveTimestamp({key: 'internal.client.interstitial-window.click.joinbutton', value: 10});
|
|
850
|
+
cdl.saveTimestamp({key: 'client.media-engine.ready', value: 50});
|
|
851
|
+
// interstitialShowedToMediaEngineReady = 50 - 8 = 42
|
|
852
|
+
// showInterstitialTime = 10 - 8 = 2
|
|
853
|
+
cdl.saveTimestamp({key: 'client.lobby.entered', value: 20});
|
|
854
|
+
cdl.saveTimestamp({key: 'client.lobby.exited', value: 60});
|
|
855
|
+
// stayLobbyTimeCappedByMediaEngineReady = min(60, 50) - 20 = 30
|
|
856
|
+
// total = 3 + 42 - 2 - 30 = 13
|
|
857
|
+
assert.deepEqual(cdl.getTotalMediaJMT(), 13);
|
|
845
858
|
});
|
|
846
859
|
|
|
847
860
|
it('calculates getTotalMediaJMT correctly when it is greater than MAX_INTEGER', () => {
|
|
848
|
-
cdl.
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
});
|
|
852
|
-
cdl.saveTimestamp({
|
|
853
|
-
|
|
854
|
-
value: 8,
|
|
855
|
-
});
|
|
856
|
-
cdl.saveTimestamp({
|
|
857
|
-
key: 'internal.client.interstitial-window.click.joinbutton',
|
|
858
|
-
value: 10,
|
|
859
|
-
});
|
|
860
|
-
cdl.saveTimestamp({
|
|
861
|
-
key: 'client.locus.join.request',
|
|
862
|
-
value: 12,
|
|
863
|
-
});
|
|
864
|
-
cdl.saveTimestamp({
|
|
865
|
-
key: 'client.locus.join.response',
|
|
866
|
-
value: 2147483700,
|
|
867
|
-
});
|
|
868
|
-
cdl.saveTimestamp({
|
|
869
|
-
key: 'client.lobby.exited',
|
|
870
|
-
value: 2147483800,
|
|
871
|
-
});
|
|
872
|
-
cdl.saveTimestamp({
|
|
873
|
-
key: 'client.ice.start',
|
|
874
|
-
value: 30,
|
|
875
|
-
});
|
|
876
|
-
cdl.saveTimestamp({
|
|
877
|
-
key: 'client.ice.end',
|
|
878
|
-
value: 100,
|
|
879
|
-
});
|
|
861
|
+
cdl.saveLatency('internal.click.to.interstitial', 5);
|
|
862
|
+
cdl.saveTimestamp({key: 'internal.client.meeting.interstitial-window.showed', value: 10});
|
|
863
|
+
cdl.saveTimestamp({key: 'internal.client.interstitial-window.click.joinbutton', value: 10});
|
|
864
|
+
cdl.saveTimestamp({key: 'client.media-engine.ready', value: 4294967400});
|
|
865
|
+
cdl.saveTimestamp({key: 'client.lobby.entered', value: 28});
|
|
866
|
+
cdl.saveTimestamp({key: 'client.lobby.exited', value: 30});
|
|
880
867
|
assert.deepEqual(cdl.getTotalMediaJMT(), 2147483647);
|
|
881
868
|
});
|
|
882
869
|
|
|
883
|
-
it('
|
|
884
|
-
cdl.
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
cdl.saveTimestamp({
|
|
890
|
-
key: 'internal.client.meeting.interstitial-window.showed',
|
|
891
|
-
value: 8,
|
|
892
|
-
});
|
|
893
|
-
cdl.saveTimestamp({
|
|
894
|
-
key: 'internal.client.interstitial-window.click.joinbutton',
|
|
895
|
-
value: 10,
|
|
896
|
-
});
|
|
897
|
-
cdl.saveTimestamp({
|
|
898
|
-
key: 'client.locus.join.request',
|
|
899
|
-
value: 12,
|
|
900
|
-
});
|
|
901
|
-
cdl.saveTimestamp({
|
|
902
|
-
key: 'client.locus.join.response',
|
|
903
|
-
value: 20,
|
|
904
|
-
});
|
|
905
|
-
cdl.saveTimestamp({
|
|
906
|
-
key: 'client.lobby.exited',
|
|
907
|
-
value: 24,
|
|
908
|
-
});
|
|
909
|
-
cdl.saveTimestamp({
|
|
910
|
-
key: 'client.ice.start',
|
|
911
|
-
value: 30,
|
|
912
|
-
});
|
|
913
|
-
cdl.saveTimestamp({
|
|
914
|
-
key: 'client.ice.end',
|
|
915
|
-
value: 40,
|
|
916
|
-
});
|
|
917
|
-
assert.deepEqual(cdl.getTotalMediaJMT(), 31);
|
|
870
|
+
it('returns undefined for getTotalMediaJMT when media-engine.ready is missing', () => {
|
|
871
|
+
cdl.saveLatency('internal.click.to.interstitial', 3);
|
|
872
|
+
cdl.saveTimestamp({key: 'internal.client.meeting.interstitial-window.showed', value: 8});
|
|
873
|
+
cdl.saveTimestamp({key: 'internal.client.interstitial-window.click.joinbutton', value: 10});
|
|
874
|
+
cdl.saveTimestamp({key: 'client.locus.join.response', value: 20});
|
|
875
|
+
assert.deepEqual(cdl.getTotalMediaJMT(), undefined);
|
|
918
876
|
});
|
|
919
877
|
|
|
920
|
-
it('calculates getTotalMediaJMT correctly
|
|
921
|
-
cdl.
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
});
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
cdl.
|
|
931
|
-
key: 'internal.client.interstitial-window.click.joinbutton',
|
|
932
|
-
value: 1000,
|
|
933
|
-
});
|
|
934
|
-
cdl.saveTimestamp({
|
|
935
|
-
key: 'client.locus.join.request',
|
|
936
|
-
value: 2000,
|
|
937
|
-
});
|
|
938
|
-
cdl.saveTimestamp({
|
|
939
|
-
key: 'client.locus.join.response',
|
|
940
|
-
value: 2147483700,
|
|
941
|
-
});
|
|
942
|
-
cdl.saveTimestamp({
|
|
943
|
-
key: 'client.lobby.exited',
|
|
944
|
-
value: 2147483800,
|
|
945
|
-
});
|
|
946
|
-
cdl.saveTimestamp({
|
|
947
|
-
key: 'client.ice.start',
|
|
948
|
-
value: 2147483900,
|
|
949
|
-
});
|
|
950
|
-
cdl.saveTimestamp({
|
|
951
|
-
key: 'client.ice.end',
|
|
952
|
-
value: 4294967400,
|
|
953
|
-
});
|
|
954
|
-
assert.deepEqual(cdl.getTotalMediaJMT(), 2147483647);
|
|
878
|
+
it('calculates getTotalMediaJMT correctly when there is no lobby and stayLobbyTime defaults to 0', () => {
|
|
879
|
+
cdl.saveLatency('internal.click.to.interstitial', 3);
|
|
880
|
+
// clickToInterstitial = 3
|
|
881
|
+
cdl.saveTimestamp({key: 'internal.client.meeting.interstitial-window.showed', value: 8});
|
|
882
|
+
cdl.saveTimestamp({key: 'internal.client.interstitial-window.click.joinbutton', value: 10});
|
|
883
|
+
cdl.saveTimestamp({key: 'client.media-engine.ready', value: 50});
|
|
884
|
+
// interstitialShowedToMediaEngineReady = 50 - 8 = 42
|
|
885
|
+
// showInterstitialTime = 10 - 8 = 2
|
|
886
|
+
// no client.lobby.entered → stayLobbyTimeCappedByMediaEngineReady = 0
|
|
887
|
+
// total = 3 + 42 - 2 - 0 = 43
|
|
888
|
+
assert.deepEqual(cdl.getTotalMediaJMT(), 43);
|
|
955
889
|
});
|
|
956
890
|
|
|
957
891
|
it('calculates getTotalMediaJMTWithUserDelay correctly', () => {
|
|
958
892
|
cdl.saveLatency('internal.click.to.interstitial.with.user.delay', 7);
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
value: 12,
|
|
966
|
-
});
|
|
967
|
-
cdl.saveTimestamp({
|
|
968
|
-
key: 'client.locus.join.response',
|
|
969
|
-
value: 20,
|
|
970
|
-
});
|
|
971
|
-
cdl.saveTimestamp({
|
|
972
|
-
key: 'internal.host.meeting.participant.admitted',
|
|
973
|
-
value: 24,
|
|
974
|
-
});
|
|
975
|
-
cdl.saveTimestamp({
|
|
976
|
-
key: 'client.ice.start',
|
|
977
|
-
value: 30,
|
|
978
|
-
});
|
|
979
|
-
cdl.saveTimestamp({
|
|
980
|
-
key: 'client.ice.end',
|
|
981
|
-
value: 40,
|
|
982
|
-
});
|
|
983
|
-
assert.deepEqual(cdl.getTotalMediaJMTWithUserDelay(), 35);
|
|
893
|
+
// clickToInterstitialWithUserDelay = 7
|
|
894
|
+
cdl.saveTimestamp({key: 'internal.client.meeting.interstitial-window.showed', value: 10});
|
|
895
|
+
cdl.saveTimestamp({key: 'client.media-engine.ready', value: 50});
|
|
896
|
+
// interstitialShowedToMediaEngineReady = 50 - 10 = 40
|
|
897
|
+
// total = 7 + 40 = 47
|
|
898
|
+
assert.deepEqual(cdl.getTotalMediaJMTWithUserDelay(), 47);
|
|
984
899
|
});
|
|
985
900
|
|
|
986
901
|
it('calculates getTotalMediaJMTWithUserDelay correctly for guest join', () => {
|
|
987
|
-
cdl.
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
});
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
});
|
|
999
|
-
cdl.
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
cdl.
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
cdl.saveTimestamp({
|
|
1008
|
-
key: 'internal.host.meeting.participant.admitted',
|
|
1009
|
-
value: 24,
|
|
1010
|
-
});
|
|
1011
|
-
cdl.saveTimestamp({
|
|
1012
|
-
key: 'client.ice.start',
|
|
1013
|
-
value: 30,
|
|
1014
|
-
});
|
|
1015
|
-
cdl.saveTimestamp({
|
|
1016
|
-
key: 'client.ice.end',
|
|
1017
|
-
value: 40,
|
|
1018
|
-
});
|
|
1019
|
-
assert.deepEqual(cdl.getTotalMediaJMTWithUserDelay(), 31);
|
|
902
|
+
cdl.saveLatency('internal.click.to.interstitial.with.user.delay', 3);
|
|
903
|
+
// clickToInterstitialWithUserDelay = 3
|
|
904
|
+
cdl.saveTimestamp({key: 'internal.client.meeting.interstitial-window.showed', value: 8});
|
|
905
|
+
cdl.saveTimestamp({key: 'client.media-engine.ready', value: 50});
|
|
906
|
+
// interstitialShowedToMediaEngineReady = 50 - 8 = 42
|
|
907
|
+
// total = 3 + 42 = 45
|
|
908
|
+
assert.deepEqual(cdl.getTotalMediaJMTWithUserDelay(), 45);
|
|
909
|
+
});
|
|
910
|
+
|
|
911
|
+
it('returns undefined for getTotalMediaJMTWithUserDelay when media-engine.ready is missing', () => {
|
|
912
|
+
cdl.saveLatency('internal.click.to.interstitial.with.user.delay', 7);
|
|
913
|
+
cdl.saveTimestamp({key: 'internal.client.meeting.interstitial-window.showed', value: 10});
|
|
914
|
+
assert.deepEqual(cdl.getTotalMediaJMTWithUserDelay(), undefined);
|
|
915
|
+
});
|
|
916
|
+
|
|
917
|
+
it('calculates getTotalMediaJMTWithUserDelay correctly when it is greater than MAX_INTEGER', () => {
|
|
918
|
+
cdl.saveLatency('internal.click.to.interstitial.with.user.delay', 2147483648);
|
|
919
|
+
cdl.saveTimestamp({key: 'internal.client.meeting.interstitial-window.showed', value: 10});
|
|
920
|
+
cdl.saveTimestamp({key: 'client.media-engine.ready', value: 50});
|
|
921
|
+
assert.deepEqual(cdl.getTotalMediaJMTWithUserDelay(), 2147483647);
|
|
1020
922
|
});
|
|
1021
923
|
|
|
1022
924
|
it('calculates getJoinConfJMT correctly', () => {
|
|
@@ -1062,6 +964,11 @@ describe('internal-plugin-metrics', () => {
|
|
|
1062
964
|
});
|
|
1063
965
|
|
|
1064
966
|
it('calculates getClientJMT correctly', () => {
|
|
967
|
+
cdl.saveLatency('internal.click.to.interstitial.for.client.jmt', 5);
|
|
968
|
+
cdl.saveTimestamp({
|
|
969
|
+
key: 'internal.client.meeting.interstitial-window.showed',
|
|
970
|
+
value: 1,
|
|
971
|
+
});
|
|
1065
972
|
cdl.saveTimestamp({
|
|
1066
973
|
key: 'internal.client.interstitial-window.click.joinbutton',
|
|
1067
974
|
value: 2,
|
|
@@ -1070,19 +977,30 @@ describe('internal-plugin-metrics', () => {
|
|
|
1070
977
|
key: 'client.locus.join.request',
|
|
1071
978
|
value: 6,
|
|
1072
979
|
});
|
|
980
|
+
// showedToLocusJoinRequest = 6-1 = 5, showInterstitialTime = 2-1 = 1
|
|
981
|
+
// clickToInterstitialForClientJmt (5) + 5 - 1 = 9
|
|
982
|
+
assert.deepEqual(cdl.getClientJMT(), 9);
|
|
983
|
+
});
|
|
984
|
+
|
|
985
|
+
it('returns undefined for getClientJMT when clickToInterstitialForClientJmt is missing', () => {
|
|
1073
986
|
cdl.saveTimestamp({
|
|
1074
|
-
key: 'client.
|
|
1075
|
-
value:
|
|
987
|
+
key: 'internal.client.meeting.interstitial-window.showed',
|
|
988
|
+
value: 1,
|
|
1076
989
|
});
|
|
1077
990
|
cdl.saveTimestamp({
|
|
1078
|
-
key: 'client.
|
|
1079
|
-
value:
|
|
991
|
+
key: 'internal.client.interstitial-window.click.joinbutton',
|
|
992
|
+
value: 2,
|
|
1080
993
|
});
|
|
1081
994
|
cdl.saveTimestamp({
|
|
1082
|
-
key: 'client.
|
|
1083
|
-
value:
|
|
995
|
+
key: 'client.locus.join.request',
|
|
996
|
+
value: 6,
|
|
1084
997
|
});
|
|
1085
|
-
assert.deepEqual(cdl.getClientJMT(),
|
|
998
|
+
assert.deepEqual(cdl.getClientJMT(), undefined);
|
|
999
|
+
});
|
|
1000
|
+
|
|
1001
|
+
it('returns undefined for getClientJMT when interstitialJoinToLocusJoinRequest is missing', () => {
|
|
1002
|
+
cdl.saveLatency('internal.click.to.interstitial.for.client.jmt', 5);
|
|
1003
|
+
assert.deepEqual(cdl.getClientJMT(), undefined);
|
|
1086
1004
|
});
|
|
1087
1005
|
|
|
1088
1006
|
it('calculates getAudioJoinRespRxStart correctly', () => {
|
|
@@ -1134,12 +1052,16 @@ describe('internal-plugin-metrics', () => {
|
|
|
1134
1052
|
});
|
|
1135
1053
|
|
|
1136
1054
|
it('calculates getInterstitialToMediaOKJMT correctly', () => {
|
|
1055
|
+
cdl.saveTimestamp({
|
|
1056
|
+
key: 'internal.client.meeting.interstitial-window.showed',
|
|
1057
|
+
value: 2,
|
|
1058
|
+
});
|
|
1137
1059
|
cdl.saveTimestamp({
|
|
1138
1060
|
key: 'internal.client.interstitial-window.click.joinbutton',
|
|
1139
1061
|
value: 4,
|
|
1140
1062
|
});
|
|
1141
1063
|
cdl.saveTimestamp({
|
|
1142
|
-
key: 'client.
|
|
1064
|
+
key: 'client.lobby.entered',
|
|
1143
1065
|
value: 10,
|
|
1144
1066
|
});
|
|
1145
1067
|
cdl.saveTimestamp({
|
|
@@ -1150,21 +1072,28 @@ describe('internal-plugin-metrics', () => {
|
|
|
1150
1072
|
key: 'client.ice.end',
|
|
1151
1073
|
value: 14,
|
|
1152
1074
|
});
|
|
1075
|
+
// showedToIceEnd = 14-2 = 12, showInterstitialTime = 4-2 = 2
|
|
1076
|
+
// stayLobbyTimeCappedByIceEnd = min(12,14)-10 = 2
|
|
1077
|
+
// result = 12 - 2 - 2 = 8
|
|
1153
1078
|
assert.deepEqual(cdl.getInterstitialToMediaOKJMT(), 8);
|
|
1154
1079
|
});
|
|
1155
1080
|
|
|
1156
1081
|
it('calculates getInterstitialToMediaOKJMT correctly when it is greater than MAX_INTEGER', () => {
|
|
1082
|
+
cdl.saveTimestamp({
|
|
1083
|
+
key: 'internal.client.meeting.interstitial-window.showed',
|
|
1084
|
+
value: 4,
|
|
1085
|
+
});
|
|
1157
1086
|
cdl.saveTimestamp({
|
|
1158
1087
|
key: 'internal.client.interstitial-window.click.joinbutton',
|
|
1159
1088
|
value: 4,
|
|
1160
1089
|
});
|
|
1161
1090
|
cdl.saveTimestamp({
|
|
1162
|
-
key: 'client.
|
|
1091
|
+
key: 'client.lobby.entered',
|
|
1163
1092
|
value: 10,
|
|
1164
1093
|
});
|
|
1165
1094
|
cdl.saveTimestamp({
|
|
1166
1095
|
key: 'client.lobby.exited',
|
|
1167
|
-
value:
|
|
1096
|
+
value: 10,
|
|
1168
1097
|
});
|
|
1169
1098
|
cdl.saveTimestamp({
|
|
1170
1099
|
key: 'client.ice.end',
|
|
@@ -1174,6 +1103,29 @@ describe('internal-plugin-metrics', () => {
|
|
|
1174
1103
|
});
|
|
1175
1104
|
|
|
1176
1105
|
it('calculates getInterstitialToMediaOKJMT correctly without lobby', () => {
|
|
1106
|
+
cdl.saveTimestamp({
|
|
1107
|
+
key: 'internal.client.meeting.interstitial-window.showed',
|
|
1108
|
+
value: 2,
|
|
1109
|
+
});
|
|
1110
|
+
cdl.saveTimestamp({
|
|
1111
|
+
key: 'internal.client.interstitial-window.click.joinbutton',
|
|
1112
|
+
value: 4,
|
|
1113
|
+
});
|
|
1114
|
+
cdl.saveTimestamp({
|
|
1115
|
+
key: 'client.ice.end',
|
|
1116
|
+
value: 14,
|
|
1117
|
+
});
|
|
1118
|
+
// showedToIceEnd = 14-2 = 12, showInterstitialTime = 4-2 = 2
|
|
1119
|
+
// stayLobbyTimeCappedByIceEnd = 0 (no lobby)
|
|
1120
|
+
// result = 12 - 2 - 0 = 10
|
|
1121
|
+
assert.deepEqual(cdl.getInterstitialToMediaOKJMT(), 10);
|
|
1122
|
+
});
|
|
1123
|
+
|
|
1124
|
+
it('calculates getInterstitialToMediaOKJMT correctly when there is no lobby and stayLobbyTime defaults to 0', () => {
|
|
1125
|
+
cdl.saveTimestamp({
|
|
1126
|
+
key: 'internal.client.meeting.interstitial-window.showed',
|
|
1127
|
+
value: 2,
|
|
1128
|
+
});
|
|
1177
1129
|
cdl.saveTimestamp({
|
|
1178
1130
|
key: 'internal.client.interstitial-window.click.joinbutton',
|
|
1179
1131
|
value: 4,
|
|
@@ -1182,6 +1134,9 @@ describe('internal-plugin-metrics', () => {
|
|
|
1182
1134
|
key: 'client.ice.end',
|
|
1183
1135
|
value: 14,
|
|
1184
1136
|
});
|
|
1137
|
+
// showedToIceEnd = 14-2 = 12, showInterstitialTime = 4-2 = 2
|
|
1138
|
+
// stayLobbyTimeCappedByIceEnd = 0 (no lobby)
|
|
1139
|
+
// result = 12 - 2 - 0 = 10
|
|
1185
1140
|
assert.deepEqual(cdl.getInterstitialToMediaOKJMT(), 10);
|
|
1186
1141
|
});
|
|
1187
1142
|
|