@@ -355,11 +355,38 @@ describe('AccessToken', function() {
355355 assert ( Object . prototype . toString . call ( this . token . created ) , '[object Date]' ) ;
356356 } ) ;
357357
358- it ( 'should be validateable' , function ( done ) {
359- this . token . validate ( function ( err , isValid ) {
360- assert ( isValid ) ;
358+ describe ( '.validate()' , function ( ) {
359+ it ( 'accepts valid tokens' , function ( done ) {
360+ this . token . validate ( function ( err , isValid ) {
361+ assert ( isValid ) ;
362+ done ( ) ;
363+ } ) ;
364+ } ) ;
361365
362- done ( ) ;
366+ it ( 'rejects eternal TTL by default' , function ( done ) {
367+ this . token . ttl = - 1 ;
368+ this . token . validate ( function ( err , isValid ) {
369+ if ( err ) return done ( err ) ;
370+ expect ( isValid , 'isValid' ) . to . equal ( false ) ;
371+ done ( ) ;
372+ } ) ;
373+ } ) ;
374+
375+ it ( 'allows eternal tokens when enabled by User.allowEternalTokens' ,
376+ function ( done ) {
377+ var Token = givenLocalTokenModel ( ) ;
378+
379+ // Overwrite User settings - enable eternal tokens
380+ Token . app . models . User . settings . allowEternalTokens = true ;
381+
382+ Token . create ( { userId : '123' , ttl : - 1 } , function ( err , token ) {
383+ if ( err ) return done ( err ) ;
384+ token . validate ( function ( err , isValid ) {
385+ if ( err ) return done ( err ) ;
386+ expect ( isValid , 'isValid' ) . to . equal ( true ) ;
387+ done ( ) ;
388+ } ) ;
389+ } ) ;
363390 } ) ;
364391 } ) ;
365392
@@ -622,3 +649,16 @@ function createTestApp(testToken, settings, done) {
622649
623650 return app ;
624651}
652+
653+ function givenLocalTokenModel ( ) {
654+ var app = loopback ( { localRegistry : true , loadBuiltinModels : true } ) ;
655+ app . dataSource ( 'db' , { connector : 'memory' } ) ;
656+
657+ var User = app . registry . getModel ( 'User' ) ;
658+ app . model ( User , { dataSource : 'db' } ) ;
659+
660+ var Token = app . registry . getModel ( 'AccessToken' ) ;
661+ app . model ( Token , { dataSource : 'db' } ) ;
662+
663+ return Token ;
664+ }
0 commit comments