@@ -32,6 +32,9 @@ describe('Connection', function() {
32
32
conn = new connection . Connection ( {
33
33
keyFilename : path . join ( __dirname , '../testdata/privateKeyFile.json' )
34
34
} ) ;
35
+ conn . requester = function ( opts , callback ) {
36
+ callback ( null ) ;
37
+ } ;
35
38
} ) ;
36
39
37
40
it ( 'should use a private key json file' , function ( done ) {
@@ -62,70 +65,69 @@ describe('Connection', function() {
62
65
} ) ;
63
66
} ) ;
64
67
65
-
66
68
describe ( 'Token' , function ( ) {
67
69
var tokenNeverExpires = new connection . Token ( 'token' , new Date ( 3000 , 0 , 0 ) ) ;
68
70
var tokenExpired = new connection . Token ( 'token' , new Date ( 2011 , 0 , 0 ) ) ;
69
71
70
72
it ( 'should fetch a new token if token expires' , function ( done ) {
71
- var c = new connection . Connection ( {
72
- email : 'x@provider' ,
73
- privateKey : '/some/path' ,
74
- scopes : [ 'scope1' , 'scope2' ]
75
- } ) ;
76
- c . token = tokenExpired ;
77
- c . fetchToken = function ( ) {
73
+ conn . token = tokenExpired ;
74
+ conn . fetchToken = function ( ) {
78
75
done ( ) ;
79
76
} ;
80
- c . requester = function ( opts , callback ) {
81
- callback ( null ) ;
77
+ conn . req ( { uri : 'https://someuri' } , function ( ) { } ) ;
78
+ } ) ;
79
+
80
+ it ( 'should pass error to callback' , function ( done ) {
81
+ var error = new Error ( 'Something terrible happened.' ) ;
82
+ conn . fetchToken = function ( cb ) {
83
+ cb ( error ) ;
82
84
} ;
83
- c . req ( { uri : 'https://someuri' } , function ( ) { } ) ;
85
+ conn . req ( { } , function ( err ) {
86
+ assert . equal ( error , err ) ;
87
+ done ( ) ;
88
+ } ) ;
84
89
} ) ;
85
90
86
91
it ( 'should make other requests wait while connecting' , function ( done ) {
87
92
var numTokenFetches = 0 ;
88
- var c = new connection . Connection ( {
89
- email : 'x@provider' ,
90
- privateKey : '/some/path' ,
91
- scopes : [ 'scope1' , 'scope2' ]
92
- } ) ;
93
- c . fetchToken = function ( cb ) {
93
+ var requestedUris = [ ] ;
94
+ conn . fetchToken = function ( cb ) {
94
95
numTokenFetches ++ ;
95
96
setImmediate ( function ( ) {
96
97
cb ( null , tokenNeverExpires ) ;
97
98
} ) ;
98
99
} ;
99
- c . requester = function ( opts , callback ) {
100
+ conn . requester = function ( opts , callback ) {
101
+ requestedUris . push ( opts . uri ) ;
100
102
callback ( null ) ;
101
103
} ;
102
-
103
104
async . parallel ( [
104
- function ( done ) { c . req ( { uri : 'https://someuri' } , done ) ; } ,
105
- function ( done ) { c . req ( { uri : 'https://someuri' } , done ) ; } ,
106
- function ( done ) { c . req ( { uri : 'https://someuri' } , done ) ; }
105
+ function ( next ) {
106
+ assert . strictEqual ( conn . isConnecting , false ) ;
107
+ conn . req ( { uri : '1' } , next ) ;
108
+ } ,
109
+ function ( next ) {
110
+ assert . strictEqual ( conn . isConnecting , true ) ;
111
+ conn . req ( { uri : '2' } , next ) ;
112
+ } ,
113
+ function ( next ) {
114
+ conn . req ( { uri : '3' } , next ) ;
115
+ }
107
116
] , function ( err ) {
108
- assert . equal ( err , null ) ;
117
+ assert . ifError ( err ) ;
109
118
assert . equal ( numTokenFetches , 1 ) ;
110
- assert . equal ( c . token , tokenNeverExpires ) ;
119
+ assert . equal ( conn . token , tokenNeverExpires ) ;
120
+ assert . deepEqual ( requestedUris , [ '1' , '2' , '3' ] ) ;
111
121
done ( ) ;
112
122
} ) ;
113
123
} ) ;
114
124
115
125
it ( 'should fetch a new token if token is invalid' , function ( done ) {
116
- var c = new connection . Connection ( {
117
- email : 'x@provider' ,
118
- privateKey : '/some/path' ,
119
- scopes : [ 'scope1' , 'scope2' ]
120
- } ) ;
121
- c . token = new connection . Token ( ) ;
122
- c . fetchToken = function ( ) {
126
+ conn . token = new connection . Token ( ) ;
127
+ conn . fetchToken = function ( ) {
123
128
done ( ) ;
124
129
} ;
125
- c . requester = function ( opts , callback ) {
126
- callback ( null ) ;
127
- } ;
128
- c . req ( { uri : 'https://someuri' } , function ( ) { } ) ;
130
+ conn . req ( { uri : 'https://someuri' } , function ( ) { } ) ;
129
131
} ) ;
130
132
} ) ;
131
133
} ) ;
0 commit comments