mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-21 20:47:08 -05:00
Merge pull request #5460 from overleaf/ab-skip-invalid-identify
Skip identify event when analyticsId is invalid GitOrigin-RevId: 1fd9c54f59ad0b6196875f9826021e95752eddf0
This commit is contained in:
parent
231ba305ed
commit
121ee4b72e
2 changed files with 9 additions and 9 deletions
|
@ -14,8 +14,10 @@ const analyticsUserPropertiesQueue = Queues.getAnalyticsUserPropertiesQueue()
|
||||||
|
|
||||||
const ONE_MINUTE_MS = 60 * 1000
|
const ONE_MINUTE_MS = 60 * 1000
|
||||||
|
|
||||||
|
const UUID_REGEXP = /^[\w]{8}(-[\w]{4}){3}-[\w]{12}$/
|
||||||
|
|
||||||
function identifyUser(userId, analyticsId, isNewUser) {
|
function identifyUser(userId, analyticsId, isNewUser) {
|
||||||
if (!userId || !analyticsId || userId.toString() === analyticsId.toString()) {
|
if (!userId || !analyticsId || !analyticsId.toString().match(UUID_REGEXP)) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (_isAnalyticsDisabled() || _isSmokeTestUser(userId)) {
|
if (_isAnalyticsDisabled() || _isSmokeTestUser(userId)) {
|
||||||
|
|
|
@ -81,16 +81,14 @@ describe('AnalyticsManager', function () {
|
||||||
})
|
})
|
||||||
|
|
||||||
it('analyticsId is missing', function () {
|
it('analyticsId is missing', function () {
|
||||||
this.AnalyticsManager.identifyUser(this.fakeUserId, undefined)
|
this.AnalyticsManager.identifyUser(
|
||||||
|
new ObjectID(this.fakeUserId),
|
||||||
|
undefined
|
||||||
|
)
|
||||||
sinon.assert.notCalled(this.analyticsEventsQueue.add)
|
sinon.assert.notCalled(this.analyticsEventsQueue.add)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('userId equals analyticsId', function () {
|
it('analyticsId is not a valid UUID', function () {
|
||||||
this.AnalyticsManager.identifyUser(this.fakeUserId, this.fakeUserId)
|
|
||||||
sinon.assert.notCalled(this.analyticsEventsQueue.add)
|
|
||||||
})
|
|
||||||
|
|
||||||
it('Mongo userId equals string userId', function () {
|
|
||||||
this.AnalyticsManager.identifyUser(
|
this.AnalyticsManager.identifyUser(
|
||||||
new ObjectID(this.fakeUserId),
|
new ObjectID(this.fakeUserId),
|
||||||
this.fakeUserId
|
this.fakeUserId
|
||||||
|
@ -109,7 +107,7 @@ describe('AnalyticsManager', function () {
|
||||||
|
|
||||||
describe('queues the appropriate message for', function () {
|
describe('queues the appropriate message for', function () {
|
||||||
it('identifyUser', function () {
|
it('identifyUser', function () {
|
||||||
const analyticsId = '456def'
|
const analyticsId = 'bd101c4c-722f-4204-9e2d-8303e5d9c120'
|
||||||
this.AnalyticsManager.identifyUser(this.fakeUserId, analyticsId)
|
this.AnalyticsManager.identifyUser(this.fakeUserId, analyticsId)
|
||||||
sinon.assert.calledWithMatch(this.analyticsEventsQueue.add, 'identify', {
|
sinon.assert.calledWithMatch(this.analyticsEventsQueue.add, 'identify', {
|
||||||
userId: this.fakeUserId,
|
userId: this.fakeUserId,
|
||||||
|
|
Loading…
Reference in a new issue