@@ -153,19 +153,19 @@ describe('Amplitude', function() {
153153
154154 it ( 'should ignore inputs that are not identify objects' , function ( ) {
155155 amplitude . identify ( 'This is a test' ) ;
156- assert . lengthOf ( amplitude . _unsentEvents , 0 ) ;
156+ assert . lengthOf ( amplitude . _unsentIdentifys , 0 ) ;
157157 assert . lengthOf ( server . requests , 0 ) ;
158158
159159 amplitude . identify ( 150 ) ;
160- assert . lengthOf ( amplitude . _unsentEvents , 0 ) ;
160+ assert . lengthOf ( amplitude . _unsentIdentifys , 0 ) ;
161161 assert . lengthOf ( server . requests , 0 ) ;
162162
163163 amplitude . identify ( [ 'test' ] ) ;
164- assert . lengthOf ( amplitude . _unsentEvents , 0 ) ;
164+ assert . lengthOf ( amplitude . _unsentIdentifys , 0 ) ;
165165 assert . lengthOf ( server . requests , 0 ) ;
166166
167167 amplitude . identify ( { 'user_prop' : true } ) ;
168- assert . lengthOf ( amplitude . _unsentEvents , 0 ) ;
168+ assert . lengthOf ( amplitude . _unsentIdentifys , 0 ) ;
169169 assert . lengthOf ( server . requests , 0 ) ;
170170 } ) ;
171171
@@ -197,6 +197,45 @@ describe('Amplitude', function() {
197197 } ) ;
198198 } ) ;
199199
200+ it ( 'should ignore empty identify objects' , function ( ) {
201+ amplitude . identify ( new Identify ( ) ) ;
202+ assert . lengthOf ( amplitude . _unsentIdentifys , 0 ) ;
203+ assert . lengthOf ( server . requests , 0 ) ;
204+ } ) ;
205+
206+ it ( 'should ignore empty proxy identify objects' , function ( ) {
207+ amplitude . identify ( { 'p' : { } } ) ;
208+ assert . lengthOf ( amplitude . _unsentIdentifys , 0 ) ;
209+ assert . lengthOf ( server . requests , 0 ) ;
210+
211+ amplitude . identify ( { } ) ;
212+ assert . lengthOf ( amplitude . _unsentIdentifys , 0 ) ;
213+ assert . lengthOf ( server . requests , 0 ) ;
214+ } ) ;
215+
216+ it ( 'should generate an event from a proxy identify object' , function ( ) {
217+ var proxyObject = { 'p' :{
218+ 'a' :{ 'key1' : 'value1' } ,
219+ 'u' :{ 'key1' : 'value2' } ,
220+ 's' :{ 'key2' : 'value3' , 'key4' : 'value5' } ,
221+ 'so' :{ 'key2' : 'value4' }
222+ } } ;
223+ amplitude . identify ( proxyObject ) ;
224+
225+ assert . lengthOf ( amplitude . _unsentEvents , 0 ) ;
226+ assert . lengthOf ( amplitude . _unsentIdentifys , 1 ) ;
227+ assert . equal ( amplitude . _unsentCount ( ) , 1 ) ;
228+ assert . lengthOf ( server . requests , 1 ) ;
229+ var events = JSON . parse ( querystring . parse ( server . requests [ 0 ] . requestBody ) . e ) ;
230+ assert . lengthOf ( events , 1 ) ;
231+ assert . equal ( events [ 0 ] . event_type , '$identify' ) ;
232+ assert . deepEqual ( events [ 0 ] . event_properties , { } ) ;
233+ assert . deepEqual ( events [ 0 ] . user_properties , {
234+ '$setOnce' : { 'key2' : 'value4' } ,
235+ '$unset' : { 'key1' : 'value2' } ,
236+ '$set' : { 'key4' : 'value5' }
237+ } ) ;
238+ } ) ;
200239 } ) ;
201240
202241 describe ( 'logEvent' , function ( ) {
0 commit comments