@@ -653,7 +653,8 @@ describe('rest create', () => {
653653 password : 'zxcv' ,
654654 foo : 'bar' ,
655655 } ;
656- const now = new Date ( ) ;
656+ const defaultSessionLength = 1000 * 3600 * 24 * 365 ;
657+ const before = Date . now ( ) ;
657658
658659 rest
659660 . create ( config , auth . nobody ( config ) , '_User' , user )
@@ -670,10 +671,11 @@ describe('rest create', () => {
670671 expect ( r . results . length ) . toEqual ( 1 ) ;
671672
672673 const session = r . results [ 0 ] ;
673- const actual = new Date ( session . expiresAt . iso ) ;
674- const expected = new Date ( now . getTime ( ) + 1000 * 3600 * 24 * 365 ) ;
674+ const actual = new Date ( session . expiresAt . iso ) . getTime ( ) ;
675+ const after = Date . now ( ) ;
675676
676- expect ( Math . abs ( actual - expected ) <= jasmine . DEFAULT_TIMEOUT_INTERVAL ) . toEqual ( true ) ;
677+ expect ( actual ) . toBeGreaterThanOrEqual ( before + defaultSessionLength ) ;
678+ expect ( actual ) . toBeLessThanOrEqual ( after + defaultSessionLength ) ;
677679
678680 done ( ) ;
679681 } ) ;
@@ -685,9 +687,9 @@ describe('rest create', () => {
685687 password : 'zxcv' ,
686688 foo : 'bar' ,
687689 } ;
688- const sessionLength = 3600 , // 1 Hour ahead
689- now = new Date ( ) ; // For reference later
690+ const sessionLength = 3600 ; // 1 Hour ahead
690691 config . sessionLength = sessionLength ;
692+ const before = Date . now ( ) ;
691693
692694 rest
693695 . create ( config , auth . nobody ( config ) , '_User' , user )
@@ -704,10 +706,11 @@ describe('rest create', () => {
704706 expect ( r . results . length ) . toEqual ( 1 ) ;
705707
706708 const session = r . results [ 0 ] ;
707- const actual = new Date ( session . expiresAt . iso ) ;
708- const expected = new Date ( now . getTime ( ) + sessionLength * 1000 ) ;
709+ const actual = new Date ( session . expiresAt . iso ) . getTime ( ) ;
710+ const after = Date . now ( ) ;
709711
710- expect ( Math . abs ( actual - expected ) <= jasmine . DEFAULT_TIMEOUT_INTERVAL ) . toEqual ( true ) ;
712+ expect ( actual ) . toBeGreaterThanOrEqual ( before + sessionLength * 1000 ) ;
713+ expect ( actual ) . toBeLessThanOrEqual ( after + sessionLength * 1000 ) ;
711714
712715 done ( ) ;
713716 } )
@@ -717,38 +720,27 @@ describe('rest create', () => {
717720 } ) ;
718721 } ) ;
719722
720- it ( 'can create a session with no expiration' , done => {
723+ it ( 'can create a session with no expiration' , async ( ) => {
724+ await reconfigureServer ( { expireInactiveSessions : false } ) ;
725+ config = Config . get ( 'test' ) ;
726+
721727 const user = {
722728 username : 'asdf' ,
723729 password : 'zxcv' ,
724730 foo : 'bar' ,
725731 } ;
726- config . expireInactiveSessions = false ;
727-
728- rest
729- . create ( config , auth . nobody ( config ) , '_User' , user )
730- . then ( r => {
731- expect ( Object . keys ( r . response ) . length ) . toEqual ( 3 ) ;
732- expect ( typeof r . response . objectId ) . toEqual ( 'string' ) ;
733- expect ( typeof r . response . createdAt ) . toEqual ( 'string' ) ;
734- expect ( typeof r . response . sessionToken ) . toEqual ( 'string' ) ;
735- return rest . find ( config , auth . master ( config ) , '_Session' , {
736- sessionToken : r . response . sessionToken ,
737- } ) ;
738- } )
739- . then ( r => {
740- expect ( r . results . length ) . toEqual ( 1 ) ;
741732
742- const session = r . results [ 0 ] ;
743- expect ( session . expiresAt ) . toBeUndefined ( ) ;
733+ const r = await rest . create ( config , auth . nobody ( config ) , '_User' , user ) ;
734+ expect ( Object . keys ( r . response ) . length ) . toEqual ( 3 ) ;
735+ expect ( typeof r . response . objectId ) . toEqual ( 'string' ) ;
736+ expect ( typeof r . response . createdAt ) . toEqual ( 'string' ) ;
737+ expect ( typeof r . response . sessionToken ) . toEqual ( 'string' ) ;
744738
745- done ( ) ;
746- } )
747- . catch ( err => {
748- console . error ( err ) ;
749- fail ( err ) ;
750- done ( ) ;
751- } ) ;
739+ const s = await rest . find ( config , auth . master ( config ) , '_Session' , {
740+ sessionToken : r . response . sessionToken ,
741+ } ) ;
742+ expect ( s . results . length ) . toEqual ( 1 ) ;
743+ expect ( s . results [ 0 ] . expiresAt ) . toBeUndefined ( ) ;
752744 } ) ;
753745
754746 it ( 'can create object in volatileClasses if masterKey' , done => {
0 commit comments