@@ -234,7 +234,7 @@ describe('RevokeHandler integration', function() {
234
234
. then ( should . fail )
235
235
. catch ( function ( ) {
236
236
response . body . should . eql ( { error : 'server_error' , error_description : 'Unhandled exception' } ) ;
237
- response . status . should . equal ( 503 ) ;
237
+ response . status . should . equal ( 500 ) ;
238
238
} ) ;
239
239
} ) ;
240
240
@@ -434,6 +434,21 @@ describe('RevokeHandler integration', function() {
434
434
handler . getClient ( request ) . should . be . an . instanceOf ( Promise ) ;
435
435
} ) ;
436
436
437
+ it ( 'should support callbacks' , function ( ) {
438
+ var model = {
439
+ getClient : function ( clientId , clientSecret , callback ) {
440
+ callback ( null , { grants : [ ] } ) ;
441
+ } ,
442
+ revokeToken : function ( ) { } ,
443
+ getRefreshToken : function ( ) { } ,
444
+ getAccessToken : function ( ) { }
445
+ } ;
446
+ var handler = new RevokeHandler ( { model : model } ) ;
447
+ var request = new Request ( { body : { client_id : 12345 , client_secret : 'secret' } , headers : { } , method : { } , query : { } } ) ;
448
+
449
+ handler . getClient ( request ) . should . be . an . instanceOf ( Promise ) ;
450
+ } ) ;
451
+
437
452
it ( 'should support non-promises' , function ( ) {
438
453
var model = {
439
454
getClient : function ( ) { return { grants : [ ] } ; } ,
@@ -607,11 +622,12 @@ describe('RevokeHandler integration', function() {
607
622
} ) ;
608
623
609
624
it ( 'should throw an error if the `client_id` does not match' , function ( ) {
610
- var client = { id : 12345 } ;
625
+ var client = { id : 'foo' } ;
626
+ var token = { refreshToken : 'hash' , client : { id : 'baz' } , user : { } , refreshTokenExpiresAt : new Date ( new Date ( ) * 2 ) } ;
611
627
var model = {
612
628
getClient : function ( ) { } ,
613
629
revokeToken : function ( ) { } ,
614
- getRefreshToken : function ( ) { return { client : { id : 9999 } , user : { } } ; } ,
630
+ getRefreshToken : function ( ) { return token ; } ,
615
631
getAccessToken : function ( ) { }
616
632
} ;
617
633
var handler = new RevokeHandler ( { model : model } ) ;
@@ -623,6 +639,121 @@ describe('RevokeHandler integration', function() {
623
639
e . message . should . equal ( 'Invalid token: refresh token client is invalid' ) ;
624
640
} ) ;
625
641
} ) ;
642
+
643
+ it ( 'should return a token' , function ( ) {
644
+ var client = { id : 'foo' } ;
645
+ var token = { refreshToken : 'hash' , client : { id : 'foo' } , user : { } , refreshTokenExpiresAt : new Date ( new Date ( ) * 2 ) } ;
646
+ var model = {
647
+ getClient : function ( ) { } ,
648
+ revokeToken : function ( ) { } ,
649
+ getRefreshToken : function ( ) { return token ; } ,
650
+ getAccessToken : function ( ) { }
651
+ } ;
652
+ var handler = new RevokeHandler ( { model : model } ) ;
653
+
654
+ return handler . getRefreshToken ( 'hash' , client )
655
+ . then ( function ( token ) {
656
+ should . exist ( token ) ;
657
+ } )
658
+ . catch ( should . fail ) ;
659
+ } ) ;
660
+
661
+ it ( 'should support callbacks' , function ( ) {
662
+ var client = { id : 'foo' } ;
663
+ var token = { refreshToken : 'hash' , client : { id : 'foo' } , user : { } , refreshTokenExpiresAt : new Date ( new Date ( ) * 2 ) } ;
664
+ var model = {
665
+ getClient : function ( ) { } ,
666
+ revokeToken : function ( ) { } ,
667
+ getRefreshToken : function ( refreshToken , callback ) {
668
+ callback ( null , token ) ;
669
+ } ,
670
+ getAccessToken : function ( ) { }
671
+ } ;
672
+ var handler = new RevokeHandler ( { model : model } ) ;
673
+
674
+ return handler . getRefreshToken ( 'hash' , client )
675
+ . then ( function ( token ) {
676
+ should . exist ( token ) ;
677
+ } )
678
+ . catch ( should . fail ) ;
679
+ } ) ;
680
+ } ) ;
681
+
682
+ describe ( 'getAccessToken()' , function ( ) {
683
+ it ( 'should throw an error if the `accessToken` is invalid' , function ( ) {
684
+ var client = { } ;
685
+ var model = {
686
+ getClient : function ( ) { } ,
687
+ revokeToken : function ( ) { } ,
688
+ getAccessToken : function ( ) { } ,
689
+ getRefreshToken : function ( ) { }
690
+ } ;
691
+ var handler = new RevokeHandler ( { model : model } ) ;
692
+
693
+ return handler . getAccessToken ( 'hash' , client )
694
+ . then ( should . fail )
695
+ . catch ( function ( e ) {
696
+ e . should . be . an . instanceOf ( InvalidTokenError ) ;
697
+ e . message . should . equal ( 'Invalid token: access token is invalid' ) ;
698
+ } ) ;
699
+ } ) ;
700
+
701
+ it ( 'should throw an error if the `client_id` does not match' , function ( ) {
702
+ var client = { id : 'foo' } ;
703
+ var token = { accessToken : 'hash' , client : { id : 'baz' } , user : { } , accessTokenExpiresAt : new Date ( new Date ( ) * 2 ) } ;
704
+ var model = {
705
+ getClient : function ( ) { } ,
706
+ revokeToken : function ( ) { } ,
707
+ getAccessToken : function ( ) { return token ; } ,
708
+ getRefreshToken : function ( ) { }
709
+ } ;
710
+ var handler = new RevokeHandler ( { model : model } ) ;
711
+
712
+ return handler . getAccessToken ( 'hash' , client )
713
+ . then ( should . fail )
714
+ . catch ( function ( e ) {
715
+ e . should . be . an . instanceOf ( InvalidTokenError ) ;
716
+ e . message . should . equal ( 'Invalid token: access token client is invalid' ) ;
717
+ } ) ;
718
+ } ) ;
719
+
720
+ it ( 'should return a token' , function ( ) {
721
+ var client = { id : 'foo' } ;
722
+ var token = { accessToken : 'hash' , client : { id : 'foo' } , user : { } , accessTokenExpiresAt : new Date ( new Date ( ) * 2 ) } ;
723
+ var model = {
724
+ getClient : function ( ) { } ,
725
+ revokeToken : function ( ) { } ,
726
+ getAccessToken : function ( ) { return token ; } ,
727
+ getRefreshToken : function ( ) { }
728
+ } ;
729
+ var handler = new RevokeHandler ( { model : model } ) ;
730
+
731
+ return handler . getAccessToken ( 'hash' , client )
732
+ . then ( function ( token ) {
733
+ should . exist ( token ) ;
734
+ } )
735
+ . catch ( should . fail ) ;
736
+ } ) ;
737
+
738
+ it ( 'should support callbacks' , function ( ) {
739
+ var client = { id : 'foo' } ;
740
+ var token = { accessToken : 'hash' , client : { id : 'foo' } , user : { } , accessTokenExpiresAt : new Date ( new Date ( ) * 2 ) } ;
741
+ var model = {
742
+ getClient : function ( ) { } ,
743
+ revokeToken : function ( ) { } ,
744
+ getAccessToken : function ( accessToken , callback ) {
745
+ callback ( null , token ) ;
746
+ } ,
747
+ getRefreshToken : function ( ) { }
748
+ } ;
749
+ var handler = new RevokeHandler ( { model : model } ) ;
750
+
751
+ return handler . getAccessToken ( 'hash' , client )
752
+ . then ( function ( token ) {
753
+ should . exist ( token ) ;
754
+ } )
755
+ . catch ( should . fail ) ;
756
+ } ) ;
626
757
} ) ;
627
758
628
759
describe ( 'revokeToken()' , function ( ) {
@@ -644,6 +775,29 @@ describe('RevokeHandler integration', function() {
644
775
e . message . should . equal ( 'Invalid token: token is invalid' ) ;
645
776
} ) ;
646
777
} ) ;
778
+
779
+ it ( 'should support callbacks' , function ( ) {
780
+ var token = { } ;
781
+ var client = { } ;
782
+ var model = {
783
+ getClient : function ( ) { } ,
784
+ revokeToken : function ( tokenObject , callback ) {
785
+ callback ( null , null ) ;
786
+ } ,
787
+ getRefreshToken : function ( refreshToken , callback ) {
788
+ callback ( null , { client : { } , user : { } } ) ;
789
+ } ,
790
+ getAccessToken : function ( ) { }
791
+ } ;
792
+ var handler = new RevokeHandler ( { model : model } ) ;
793
+
794
+ return handler . revokeToken ( token , client )
795
+ . then ( should . fail )
796
+ . catch ( function ( e ) {
797
+ e . should . be . an . instanceOf ( InvalidTokenError ) ;
798
+ e . message . should . equal ( 'Invalid token: token is invalid' ) ;
799
+ } ) ;
800
+ } ) ;
647
801
} ) ;
648
802
649
803
describe ( 'getTokenFromRequest()' , function ( ) {
0 commit comments