18
18
19
19
import * as assert from 'assert'
20
20
import { InternalEventTarget } from '../src/EventTarget'
21
- import { initSessionTracking , getRumSessionId , updateSessionStatus } from '../src/session/session'
21
+ import {
22
+ initSessionTracking ,
23
+ getRumSessionId ,
24
+ getOrCreateSessionIdAndUpdateExpirationIfNecessary ,
25
+ } from '../src/session'
22
26
import { SplunkWebTracerProvider } from '../src'
23
27
import sinon from 'sinon'
24
28
import { SESSION_STORAGE_KEY , SESSION_INACTIVITY_TIMEOUT_MS } from '../src/session/constants'
@@ -37,11 +41,11 @@ describe('Session tracking', () => {
37
41
it ( 'should correctly handle expiry, garbage values, (in)activity, etc.' , ( done ) => {
38
42
// the init tests have possibly already started the setInterval for updateSessionStatus. Try to accomodate this.
39
43
const provider = new SplunkWebTracerProvider ( )
40
- const trackingHandle = initSessionTracking ( provider , '1234' , new InternalEventTarget ( ) )
44
+ const trackingHandle = initSessionTracking ( provider , new InternalEventTarget ( ) )
41
45
const firstSessionId = getRumSessionId ( { useLocalStorage : false } )
42
46
assert . strictEqual ( firstSessionId . length , 32 )
43
47
// no marked activity, should keep same state
44
- updateSessionStatus ( { forceStore : false , useLocalStorage : false } )
48
+ getOrCreateSessionIdAndUpdateExpirationIfNecessary ( { forceStore : false , useLocalStorage : false } )
45
49
assert . strictEqual ( firstSessionId , getRumSessionId ( { useLocalStorage : false } ) )
46
50
// set cookie to expire in 2 seconds, mark activity, and then updateSessionStatus.
47
51
// Wait 4 seconds and cookie should still be there (having been renewed)
@@ -54,7 +58,7 @@ describe('Session tracking', () => {
54
58
)
55
59
document . cookie = SESSION_STORAGE_KEY + '=' + cookieValue + '; path=/; max-age=' + 2
56
60
document . body . dispatchEvent ( new Event ( 'click' ) )
57
- updateSessionStatus ( { forceStore : false , useLocalStorage : false } )
61
+ getOrCreateSessionIdAndUpdateExpirationIfNecessary ( { forceStore : false , useLocalStorage : false } )
58
62
setTimeout ( ( ) => {
59
63
// because of activity, same session should be there
60
64
assert . ok ( document . cookie . includes ( SESSION_STORAGE_KEY ) )
@@ -72,7 +76,7 @@ describe('Session tracking', () => {
72
76
)
73
77
document . cookie = SESSION_STORAGE_KEY + '=' + tooOldCookieValue + '; path=/; max-age=' + 4
74
78
75
- updateSessionStatus ( { forceStore : true , useLocalStorage : false } )
79
+ getOrCreateSessionIdAndUpdateExpirationIfNecessary ( { forceStore : true , useLocalStorage : false } )
76
80
assert . ok ( document . cookie . includes ( SESSION_STORAGE_KEY ) )
77
81
const newSessionId = getRumSessionId ( { useLocalStorage : false } )
78
82
assert . strictEqual ( newSessionId . length , 32 )
@@ -90,11 +94,10 @@ describe('Session tracking', () => {
90
94
91
95
function subject ( allSpansAreActivity = false ) {
92
96
const provider = new SplunkWebTracerProvider ( )
93
- const firstSessionId = getRumSessionId ( { useLocalStorage : false } )
94
- initSessionTracking ( provider , firstSessionId , new InternalEventTarget ( ) , undefined , allSpansAreActivity )
97
+ initSessionTracking ( provider , new InternalEventTarget ( ) , undefined , allSpansAreActivity )
95
98
96
99
provider . getTracer ( 'tracer' ) . startSpan ( 'any-span' ) . end ( )
97
- updateSessionStatus ( { forceStore : false , useLocalStorage : false } )
100
+ getOrCreateSessionIdAndUpdateExpirationIfNecessary ( { forceStore : false , useLocalStorage : false } )
98
101
}
99
102
100
103
it ( 'non-activity spans do not trigger a new session' , ( done ) => {
@@ -131,16 +134,14 @@ describe('Session tracking - localStorage', () => {
131
134
const provider = new SplunkWebTracerProvider ( )
132
135
const trackingHandle = initSessionTracking (
133
136
provider ,
134
- '1234' ,
135
137
new InternalEventTarget ( ) ,
136
138
undefined ,
137
139
undefined ,
138
140
useLocalStorage ,
139
141
)
140
142
141
- const firstSessionId = getRumSessionId ( { useLocalStorage } )
142
- updateSessionStatus ( { forceStore : true , useLocalStorage } )
143
- assert . strictEqual ( firstSessionId , getRumSessionId ( { useLocalStorage } ) )
143
+ const sessionId = getOrCreateSessionIdAndUpdateExpirationIfNecessary ( { forceStore : true , useLocalStorage } )
144
+ assert . strictEqual ( sessionId , getRumSessionId ( { useLocalStorage } ) )
144
145
145
146
trackingHandle . deinit ( )
146
147
} )
0 commit comments