@@ -15,14 +15,29 @@ function initMain() {
15
15
var pageNameOne = "test view page name1" ;
16
16
var pageNameTwo = "test view page name2" ;
17
17
18
- describe ( "Views tests " , ( ) => {
18
+ describe ( "View ID tests " , ( ) => {
19
+ it ( "Checks if UUID and secureRandom works as intended" , ( ) => {
20
+ hp . haltAndClearStorage ( ( ) => {
21
+ initMain ( ) ;
22
+ const uuid = Countly . _internals . generateUUID ( ) ;
23
+ const id = Countly . _internals . secureRandom ( ) ;
24
+ assert . equal ( uuid . length , 36 ) ;
25
+ assert . equal ( id . length , 21 ) ;
26
+ const uuid2 = Countly . _internals . generateUUID ( ) ;
27
+ const id2 = Countly . _internals . secureRandom ( ) ;
28
+ assert . equal ( uuid2 . length , 36 ) ;
29
+ assert . equal ( id2 . length , 21 ) ;
30
+ assert . notEqual ( uuid , uuid2 ) ;
31
+ assert . notEqual ( id , id2 ) ;
32
+ } ) ;
33
+ } ) ;
19
34
it ( "Checks if recording page view works" , ( ) => {
20
35
hp . haltAndClearStorage ( ( ) => {
21
36
initMain ( ) ;
22
37
Countly . track_view ( pageNameOne ) ;
23
38
cy . fetch_local_event_queue ( ) . then ( ( eq ) => {
24
39
expect ( eq . length ) . to . equal ( 1 ) ;
25
- cy . check_view_event ( eq [ 0 ] , pageNameOne ) ;
40
+ cy . check_view_event ( eq [ 0 ] , pageNameOne , undefined , false ) ;
26
41
} ) ;
27
42
} ) ;
28
43
} ) ;
@@ -33,10 +48,20 @@ describe("Views tests ", () => {
33
48
cy . wait ( 3000 ) . then ( ( ) => {
34
49
Countly . track_view ( pageNameOne ) ;
35
50
cy . fetch_local_event_queue ( ) . then ( ( eq ) => {
51
+ cy . log ( eq ) ;
36
52
expect ( eq . length ) . to . equal ( 3 ) ;
37
- cy . check_view_event ( eq [ 0 ] , pageNameOne ) ;
38
- cy . check_view_event ( eq [ 1 ] , pageNameOne , 3 ) ;
39
- cy . check_view_event ( eq [ 2 ] , pageNameOne ) ;
53
+ cy . check_view_event ( eq [ 0 ] , pageNameOne , undefined , false ) ;
54
+ const id1 = eq [ 0 ] . id ;
55
+
56
+ cy . check_view_event ( eq [ 1 ] , pageNameOne , 3 , false ) ;
57
+ const id2 = eq [ 1 ] . id ;
58
+ assert . equal ( id1 , id2 ) ;
59
+
60
+ cy . check_view_event ( eq [ 2 ] , pageNameOne , undefined , true ) ;
61
+ const id3 = eq [ 2 ] . id ;
62
+ const pvid = eq [ 2 ] . pvid ;
63
+ assert . equal ( id1 , pvid ) ;
64
+ assert . notEqual ( id3 , pvid ) ;
40
65
} ) ;
41
66
} ) ;
42
67
} ) ;
@@ -45,18 +70,66 @@ describe("Views tests ", () => {
45
70
hp . haltAndClearStorage ( ( ) => {
46
71
initMain ( ) ;
47
72
Countly . track_view ( pageNameOne ) ;
48
- var expectedDur = 4000 ;
49
- hp . waitFunction ( hp . getTimestampMs ( ) , expectedDur , 500 , ( ) => {
50
- // cy.wait(4000).then(() => {
73
+ hp . waitFunction ( hp . getTimestampMs ( ) , 4000 , 500 , ( ) => {
51
74
Countly . track_view ( pageNameTwo ) ;
52
75
cy . fetch_local_event_queue ( ) . then ( ( eq ) => {
53
76
expect ( eq . length ) . to . equal ( 3 ) ;
54
- cy . check_view_event ( eq [ 0 ] , pageNameOne ) ;
77
+ cy . check_view_event ( eq [ 0 ] , pageNameOne , undefined , false ) ;
78
+ const id1 = eq [ 0 ] . id ;
79
+
55
80
// this test is flaky we are expecting 3 and +1 (4) to make test more reliable
56
- cy . check_view_event ( eq [ 1 ] , pageNameOne , expectedDur / 1000 ) ;
57
- cy . check_view_event ( eq [ 2 ] , pageNameTwo ) ;
81
+ cy . check_view_event ( eq [ 1 ] , pageNameOne , 4 , false ) ;
82
+ const id2 = eq [ 1 ] . id ;
83
+ assert . equal ( id1 , id2 ) ;
84
+
85
+ cy . check_view_event ( eq [ 2 ] , pageNameTwo , undefined , true ) ;
86
+ const id3 = eq [ 2 ] . id ;
87
+ const pvid = eq [ 2 ] . pvid ;
88
+ assert . equal ( id1 , pvid ) ;
89
+ assert . notEqual ( id3 , pvid ) ;
58
90
} ) ;
59
- // });
91
+ } ) ;
92
+ } ) ;
93
+ } ) ;
94
+
95
+ // ===========================
96
+ // Confirms:
97
+ // view A's id and event A's cvid are same
98
+ // view B's id and event B's cvid are same. Also view B's pvid and view A's id are same
99
+ // view C's id and event C's cvid are same. Also view C's pvid and view B's id are same
100
+ //
101
+ // request order: view A start -> event A -> view A end -> view B start -> event B -> view B end -> view C start -> event C
102
+ // ===========================
103
+ it ( "Checks a sequence of events and page views" , ( ) => {
104
+ hp . haltAndClearStorage ( ( ) => {
105
+ initMain ( ) ;
106
+ Countly . track_view ( "A" ) ;
107
+ Countly . add_event ( { key : "A" } ) ;
108
+ Countly . track_view ( "B" ) ;
109
+ Countly . add_event ( { key : "B" } ) ;
110
+ Countly . track_view ( "C" ) ;
111
+ Countly . add_event ( { key : "C" } ) ;
112
+
113
+ cy . fetch_local_event_queue ( ) . then ( ( eq ) => {
114
+ expect ( eq . length ) . to . equal ( 8 ) ;
115
+ cy . log ( eq ) ;
116
+
117
+ // event A and view A
118
+ cy . check_view_event ( eq [ 0 ] , "A" , undefined , false ) ; // no pvid
119
+ const idA = eq [ 0 ] . id ; // idA
120
+ cy . check_event ( eq [ 1 ] , { key : "A" } , undefined , idA ) ; // cvid should be idA
121
+ cy . check_view_event ( eq [ 2 ] , "A" , 0 , false ) ; // no pvid
122
+
123
+ // event B and view B
124
+ cy . check_view_event ( eq [ 3 ] , "B" , undefined , idA ) ; // pvid is idA
125
+ const idB = eq [ 3 ] . id ; // idB
126
+ cy . check_event ( eq [ 4 ] , { key : "B" } , undefined , idB ) ; // cvid should be idB
127
+ cy . check_view_event ( eq [ 5 ] , "B" , 0 , idA ) ; // pvid is idA
128
+
129
+ // event C and view C
130
+ cy . check_view_event ( eq [ 6 ] , "C" , undefined , idB ) ; // pvid is idB
131
+ const idC = eq [ 6 ] . id ; // idC
132
+ cy . check_event ( eq [ 7 ] , { key : "C" } , undefined , idC ) ; // cvid should be idC
60
133
} ) ;
61
134
} ) ;
62
135
} ) ;
0 commit comments