aws-sdk-mobile-analytics
Version:
AWS Mobile Analytics SDK for JavaScript
90 lines (82 loc) • 3.55 kB
text/coffeescript
Copyright 2014-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved.
Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
the License. A copy of the License is located at http://aws.amazon.com/apache2.0/
or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
and limitations under the License.
helpers = require('./helpers')
AMA = helpers.AMA
mobileAnalyticsClient = null
lastError = null
lastLog = null
testAppId = 'e123411e2fe34eaf9ba257bbd94b44af'
localStorage = new AMA.Storage(testAppId)
appStorageKey = 'AWSMobileAnalyticsStorage'
clientId1 = 'v0.9.0'
clientId2 = 'v0.9.1'
v090Data =
AWSMobileAnalyticsClientId: clientId1
v091Data =
AWSMobileAnalyticsClientId: clientId2
try
window = window
catch
window = false
describe 'Migration SDK v0.9.0 to v0.9.1', ->
try
if (window && window.localStorage)
describe 'Has v0.9.0 clientID and no v0.9.1 clientId', ->
before ->
clearStorage()
window.localStorage.setItem(appStorageKey, JSON.stringify(v090Data))
mobileAnalyticsClient = new AMA.Client(createConfig())
it 'should use clientId from global scope', ->
expect(mobileAnalyticsClient.options.clientContext.client.client_id).to.eql(clientId1)
it 'should not have migration clientId', ->
expect(mobileAnalyticsClient.options.globalAttributes.migrationId).to.be.undefined
describe 'Has different v0.9.0 clientID and v0.9.1 clientId', ->
before ->
window.localStorage.set(appStorageKey, JSON.stringify(v090Data))
localStorage.set(AMA.StorageKeys.CLIENT_ID, clientId2)
mobileAnalyticsClient = new AMA.Client(createConfig())
it 'should use clientId from global scope', ->
expect(mobileAnalyticsClient.options.clientContext.client.client_id).to.eql(clientId1)
it 'should have migration clientId', ->
expect(mobileAnalyticsClient.options.globalAttributes.migrationId).to.eql(clientId2)
describe 'Has only v0.9.1 clientId', ->
before ->
window.localStorage.setItem(appStorageKey, JSON.stringify(v091Data))
mobileAnalyticsClient = new AMA.Client(createConfig())
it 'should use clientId from global scope', ->
expect(mobileAnalyticsClient.options.clientContext.client.client_id).to.eql(clientId2)
it 'should not have migration clientId', ->
expect(mobileAnalyticsClient.options.globalAttributes.migrationId).to.be.undefined
catch
console.log('Migration coffeescripts not running, window is undefined')
clearStorage = ->
localStorage.clearLocalStorage()
window.localStorage.removeItem(appStorageKey);
window.localStorage.removeItem(AMA.StorageKeys.CLIENT_ID);
createConfig = ->
return{
appTitle : '活跃的应用 (Active App)',
appId : testAppId,
appPackageName : 'com.amazonAMA..console',
appVersionName : '',
appVersionCode : '',
locale : '<locale>',
platform: 'android',
storage: localStorage,
globalAttributes: {
context: 'node'
},
logger: {
log: ->
lastLog = arguments
error: ->
lastError = arguments
}
}