1212// See the License for the specific language governing permissions and
1313// limitations under the License.
1414
15- import { before , describe , it } from 'mocha' ;
16- import * as assert from 'assert' ;
1715import * as http from 'http' ;
18-
1916import * as common from '../src' ;
17+ import { util } from '../src/util' ;
2018
2119describe ( 'Common' , ( ) => {
2220 const MOCK_HOST_PORT = 8118 ;
2321 const MOCK_HOST = `http://localhost:${ MOCK_HOST_PORT } ` ;
2422
2523 describe ( 'Service' , ( ) => {
2624 let service : common . Service ;
25+ let mockServer : http . Server | undefined ;
26+
27+ beforeAll ( ( ) => {
28+ jest . spyOn ( util , 'makeAuthenticatedRequestFactory' ) . mockImplementation ( ( config : any ) => {
29+ const makeAuthenticatedRequest : any = ( reqOpts : any , callback : any ) => {
30+ if ( typeof callback === 'function' ) {
31+ return util . makeRequest ( reqOpts , config , callback ) ;
32+ }
33+ return util . makeRequest ( reqOpts , config , ( ) => { } ) ;
34+ } ;
35+ makeAuthenticatedRequest . authClient = {
36+ getProjectId : async ( ) => 'project-id'
37+ } ;
38+ return makeAuthenticatedRequest ;
39+ } ) ;
2740
28- before ( ( ) => {
2941 service = new common . Service ( {
3042 baseUrl : MOCK_HOST ,
3143 apiEndpoint : MOCK_HOST ,
3244 scopes : [ ] ,
3345 packageJson : { name : 'tests' , version : '1.0.0' } ,
46+ projectIdRequired : false ,
3447 } ) ;
3548 } ) ;
3649
50+ afterEach ( done => {
51+ if ( mockServer ) {
52+ mockServer . close ( ( ) => done ( ) ) ;
53+ mockServer = undefined ;
54+ } else {
55+ done ( ) ;
56+ }
57+ } ) ;
58+
3759 it ( 'should send a request and receive a response' , done => {
3860 const mockResponse = 'response' ;
39- const mockServer = new http . Server ( ( req , res ) => {
61+ mockServer = new http . Server ( ( req , res ) => {
4062 res . end ( mockResponse ) ;
4163 } ) ;
4264
@@ -47,19 +69,21 @@ describe('Common', () => {
4769 uri : '/mock-endpoint' ,
4870 } ,
4971 ( err , resp ) => {
50- assert . ifError ( err ) ;
51- assert . strictEqual ( resp , mockResponse ) ;
52- mockServer . close ( done ) ;
72+ try {
73+ expect ( err ) . toBeNull ( ) ;
74+ expect ( resp ) . toBe ( mockResponse ) ;
75+ done ( ) ;
76+ } catch ( e ) {
77+ done ( e ) ;
78+ }
5379 } ,
5480 ) ;
5581 } ) ;
5682
57- it ( 'should retry a request' , function ( done ) {
58- this . timeout ( 60 * 1000 ) ;
59-
83+ it ( 'should retry a request' , done => {
6084 let numRequestAttempts = 0 ;
6185
62- const mockServer = new http . Server ( ( req , res ) => {
86+ mockServer = new http . Server ( ( req , res ) => {
6387 numRequestAttempts ++ ;
6488 res . statusCode = 408 ;
6589 res . end ( ) ;
@@ -70,18 +94,21 @@ describe('Common', () => {
7094 service . request (
7195 {
7296 uri : '/mock-endpoint-retry' ,
97+ maxRetries : 4 ,
7398 } ,
7499 err => {
75- assert . strictEqual ( ( err ! as common . ApiError ) . code , 408 ) ;
76- assert . strictEqual ( numRequestAttempts , 4 ) ;
77- mockServer . close ( done ) ;
100+ try {
101+ expect ( ( err ! as common . ApiError ) . code ) . toBe ( 408 ) ;
102+ expect ( numRequestAttempts ) . toBe ( 4 ) ;
103+ done ( ) ;
104+ } catch ( e ) {
105+ done ( e ) ;
106+ }
78107 } ,
79108 ) ;
80- } ) ;
81-
82- it ( 'should retry non-responsive hosts' , function ( done ) {
83- this . timeout ( 60 * 1000 ) ;
109+ } , 60000 ) ;
84110
111+ it ( 'should retry non-responsive hosts' , done => {
85112 function getMinimumRetryDelay ( retryNumber : number ) {
86113 return Math . pow ( 2 , retryNumber ) * 1000 ;
87114 }
@@ -100,12 +127,16 @@ describe('Common', () => {
100127 uri : '/mock-endpoint-no-response' ,
101128 } ,
102129 err => {
103- assert ( err ?. message . includes ( 'ECONNREFUSED' ) ) ;
104- const timeResponse = Date . now ( ) ;
105- assert ( timeResponse - timeRequest > minExpectedResponseTime ) ;
106- done ( ) ;
130+ try {
131+ expect ( err ?. message ) . toMatch ( / E C O N N R E F U S E D | E N O T F O U N D | f a i l e d , r e a s o n : / ) ;
132+ const timeResponse = Date . now ( ) ;
133+ expect ( timeResponse - timeRequest ) . toBeGreaterThan ( minExpectedResponseTime ) ;
134+ done ( ) ;
135+ } catch ( e ) {
136+ done ( e ) ;
137+ }
107138 } ,
108139 ) ;
109- } ) ;
140+ } , 60000 ) ;
110141 } ) ;
111142} ) ;
0 commit comments