@@ -98,6 +98,41 @@ describe('Connection', function() {
98
98
var tokenNeverExpires = new connection . Token ( 'token' , new Date ( 3000 , 0 , 0 ) ) ;
99
99
var tokenExpired = new connection . Token ( 'token' , new Date ( 2011 , 0 , 0 ) ) ;
100
100
101
+ describe ( 'GCE' , function ( ) {
102
+ var gceConn ;
103
+ var metadataResponse = {
104
+ body : {
105
+ access_token : 'y.8' ,
106
+ expires_in : 60
107
+ }
108
+ } ;
109
+
110
+ beforeEach ( function ( ) {
111
+ gceConn = new connection . Connection ( ) ;
112
+ } ) ;
113
+
114
+ it ( 'should fetch a token from the metadata server' , function ( ) {
115
+ gceConn . requester = function ( opts ) {
116
+ assert . equal ( opts . uri . indexOf ( 'http://metadata/' ) , 0 ) ;
117
+ } ;
118
+ gceConn . fetchToken ( ) ;
119
+ } ) ;
120
+
121
+ it ( 'should build token from the metadata server response' , function ( ) {
122
+ gceConn . requester = function ( opts , callback ) {
123
+ callback ( null , metadataResponse , metadataResponse . body ) ;
124
+ } ;
125
+ gceConn . fetchToken ( function ( err , token ) {
126
+ assert . ifError ( err ) ;
127
+ assert ( token instanceof connection . Token ) ;
128
+ assert . equal ( token . accessToken , metadataResponse . body . access_token ) ;
129
+ var addedMs = metadataResponse . body . expires_in * 1000 ;
130
+ var tokenDate = new Date ( Date . now ( ) + addedMs ) ;
131
+ assert . equal ( token . expiry . getTime ( ) , tokenDate . getTime ( ) ) ;
132
+ } ) ;
133
+ } ) ;
134
+ } ) ;
135
+
101
136
it ( 'should fetch a new token if token expires' , function ( done ) {
102
137
conn . token = tokenExpired ;
103
138
conn . fetchToken = function ( ) {
0 commit comments