@@ -394,6 +394,50 @@ describe('Amplitude', function() {
394394 assert . equal ( events [ 0 ] . event_id , 49 ) ;
395395 assert . equal ( events [ 1 ] . event_type , '$identify' ) ;
396396 } ) ;
397+
398+ it ( 'should validate event properties when loading saved events from localStorage' , function ( ) {
399+ var existingEvents = '[{"device_id":"15a82aaa-0d9e-4083-a32d-2352191877e6","user_id":"15a82aaa-0d9e-4083-a32d' +
400+ '-2352191877e6","timestamp":1455744744413,"event_id":2,"session_id":1455744733865,"event_type":"clicked",' +
401+ '"version_name":"Web","platform":"Web","os_name":"Chrome","os_version":"48","device_model":"Mac","language"' +
402+ ':"en-US","api_properties":{},"event_properties":"{}","user_properties":{},"uuid":"1b8859d9-e91e-403e-92d4-' +
403+ 'c600dfb83432","library":{"name":"amplitude-js","version":"2.9.0"},"sequence_number":4},{"device_id":"15a82a' +
404+ 'aa-0d9e-4083-a32d-2352191877e6","user_id":"15a82aaa-0d9e-4083-a32d-2352191877e6","timestamp":1455744746295,' +
405+ '"event_id":3,"session_id":1455744733865,"event_type":"clicked","version_name":"Web","platform":"Web",' +
406+ '"os_name":"Chrome","os_version":"48","device_model":"Mac","language":"en-US","api_properties":{},' +
407+ '"event_properties":{"10":"false","bool":true,"null":null,"string":"test","array":' +
408+ '[0,1,2,"3"],"nested_array":["a",{"key":"value"},["b"]],"object":{"key":"value"},"nested_object":' +
409+ '{"k":"v","l":[0,1],"o":{"k2":"v2","l2":["e2",{"k3":"v3"}]}}},"user_properties":{},"uuid":"650407a1-d705-' +
410+ '47a0-8918-b4530ce51f89","library":{"name":"amplitude-js","version":"2.9.0"},"sequence_number":5}]' ;
411+ localStorage . setItem ( 'amplitude_unsent' , existingEvents ) ;
412+
413+ var amplitude2 = new Amplitude ( ) ;
414+ amplitude2 . init ( apiKey , null , {
415+ batchEvents : true
416+ } ) ;
417+
418+ var expected = {
419+ '10' : 'false' ,
420+ 'bool' : true ,
421+ 'string' : 'test' ,
422+ 'array' : [ 0 , 1 , 2 , '3' ] ,
423+ 'nested_array' : [ 'a' ] ,
424+ 'object' : {
425+ 'key' : 'value'
426+ } ,
427+ 'nested_object' : {
428+ 'k' : 'v' ,
429+ 'l' : [ 0 , 1 ] ,
430+ 'o' : {
431+ 'k2' : 'v2' ,
432+ 'l2' : [ 'e2' ]
433+ }
434+ }
435+ }
436+
437+ // check that event loaded into memory
438+ assert . deepEqual ( amplitude2 . _unsentEvents [ 0 ] . event_properties , { } ) ;
439+ assert . deepEqual ( amplitude2 . _unsentEvents [ 1 ] . event_properties , expected ) ;
440+ } ) ;
397441 } ) ;
398442
399443 describe ( 'runQueuedFunctions' , function ( ) {
@@ -1628,7 +1672,7 @@ describe('Amplitude', function() {
16281672 10 : 'false' , // coerce key
16291673 'bool' : true ,
16301674 'null' : null , // should be ignored
1631- 'function' : utils . log , // should be ignored
1675+ 'function' : console . log , // should be ignored
16321676 'regex' : / a f d g / , // should be ignored
16331677 'error' : e , // coerce value
16341678 'string' : 'test' ,
0 commit comments