@@ -1585,6 +1585,7 @@ module.exports = function(config, DB) {
15851585
15861586 var evA = 'account.login'
15871587 var evB = 'account.create'
1588+ var evC = 'account.reset'
15881589
15891590 var sessionId1 = hex32 ( )
15901591 var sessionId2 = hex32 ( )
@@ -1635,38 +1636,49 @@ module.exports = function(config, DB) {
16351636 createSession ( sessionId2 , session2 ) ,
16361637 createSession ( sessionId3 , session3 )
16371638 ] )
1639+ // Don't paralleize these, the order of them matters
1640+ // because they record timestamps in the db.
16381641 . then ( function ( ) {
1639- return P . all ( [
1640- insert ( uid1 , addr1 , evB , sessionId1 ) ,
1641- insert ( uid1 , addr1 , evA , sessionId2 ) ,
1642- insert ( uid1 , addr2 , evA , sessionId3 ) ,
1643- insert ( uid2 , addr1 , evA , hex32 ( ) )
1644- ] )
1642+ return insert ( uid1 , addr1 , evA , sessionId2 ) . then ( P . delay . bind ( P , 1 ) )
1643+ } )
1644+ . then ( function ( ) {
1645+ return insert ( uid1 , addr1 , evB , sessionId1 ) . then ( P . delay . bind ( P , 1 ) )
1646+ } )
1647+ . then ( function ( ) {
1648+ return insert ( uid1 , addr1 , evC ) . then ( P . delay . bind ( P , 1 ) )
1649+ } )
1650+ . then ( function ( ) {
1651+ return insert ( uid1 , addr2 , evA , sessionId3 ) . then ( P . delay . bind ( P , 1 ) )
1652+ } )
1653+ . then ( function ( ) {
1654+ return insert ( uid2 , addr1 , evA , hex32 ( ) )
16451655 } )
16461656 } ,
16471657
16481658 testGetEvent : query (
16491659 uid1 , addr1 ,
16501660 function ( results ) {
1651- t . equal ( results . length , 2 , 'two events for uid and addr' )
1652- // order may differ depending on which query finishes first
1653- var a = results [ 1 ] . name === evA ? 1 : 0
1654- var b = Number ( ! a )
1655- t . equal ( results [ b ] . name , evB , 'correct event name' )
1656- t . equal ( ! ! results [ b ] . verified , false , 'first session is not verified yet' )
1657- t . ok ( results [ b ] . createdAt < Date . now ( ) , 'createdAt is set' )
1658- t . equal ( results [ a ] . name , evA , 'correct event name' )
1659- t . equal ( ! ! results [ a ] . verified , true , 'second session is verified' )
1660- t . ok ( results [ a ] . createdAt < Date . now ( ) , 'createdAt is set' )
1661+ t . equal ( results . length , 3 , 'three events for uid and addr' )
1662+ // The most recent event is returned first.
1663+ t . equal ( results [ 0 ] . name , evC , 'correct event name' )
1664+ t . equal ( ! ! results [ 0 ] . verified , true , 'event without a session is already verified' )
1665+ t . ok ( results [ 0 ] . createdAt < Date . now ( ) , 'createdAt is set' )
1666+ t . equal ( results [ 1 ] . name , evB , 'correct event name' )
1667+ t . equal ( ! ! results [ 1 ] . verified , false , 'second session is not verified yet' )
1668+ t . ok ( results [ 1 ] . createdAt < results [ 0 ] . createdAt , 'createdAt is lower than previous event' )
1669+ t . equal ( results [ 2 ] . name , evA , 'correct event name' )
1670+ t . equal ( ! ! results [ 2 ] . verified , true , 'first session is already verified' )
1671+ t . ok ( results [ 2 ] . createdAt < results [ 1 ] . createdAt , 'createdAt is lower than previous event' )
16611672 }
16621673 ) ,
16631674
16641675 testGetEventAfterSessionVerified : function ( ) {
16651676 return verifySession ( session1 . tokenVerificationId , uid1 )
16661677 . then ( query ( uid1 , addr1 , function ( results ) {
1667- t . equal ( results . length , 2 , 'two events for uid and addr' )
1678+ t . equal ( results . length , 3 , 'three events for uid and addr' )
16681679 t . equal ( ! ! results [ 0 ] . verified , true , 'first session verified' )
16691680 t . equal ( ! ! results [ 1 ] . verified , true , 'second session verified' )
1681+ t . equal ( ! ! results [ 2 ] . verified , true , 'third session verified' )
16701682 } ) )
16711683 } ,
16721684
@@ -1691,7 +1703,7 @@ module.exports = function(config, DB) {
16911703 testGetWithIPv6 : query (
16921704 uid1 , '::' + addr1 ,
16931705 function ( results ) {
1694- t . equal ( results . length , 2 , 'two events for ipv6 addr' )
1706+ t . equal ( results . length , 3 , 'three events for ipv6 addr' )
16951707 }
16961708 ) ,
16971709
0 commit comments