@@ -4,9 +4,11 @@ let mockRequire = require('mock-require');
44
55function generateMockUrllib ( ) {
66 let response = [ ] as any ;
7+ let lastRequestOptions = null as any ;
78
89 mockRequire ( 'urllib' , {
9- request : ( ) => {
10+ request : ( _url : string , options : any ) => {
11+ lastRequestOptions = options ;
1012 return response ;
1113 } ,
1214 } ) ;
@@ -15,6 +17,7 @@ function generateMockUrllib() {
1517 setReturn : ( array : any ) => {
1618 response = array ;
1719 } ,
20+ getLastRequestOptions : ( ) => lastRequestOptions ,
1821 } ;
1922}
2023const mockUrllib = generateMockUrllib ( ) ;
@@ -93,5 +96,39 @@ describe('test/utils/index.test.ts', () => {
9396 const result = await requestUpdateInfo ( updator ) ;
9497 assert . equal ( result . version , '7.2.2' ) ;
9598 } ) ;
99+
100+ it ( '应将 headers 透传给 urllib.request' , async ( ) => {
101+ const headers = { Cookie : 'session=abc123; token=xyz' } ;
102+ const updator = {
103+ url : 'https://github.com' ,
104+ headers,
105+ } ;
106+ mockUrllib . setReturn ( {
107+ status : 200 ,
108+ data : {
109+ isUpdate : true ,
110+ version : '1.0.0' ,
111+ } ,
112+ } ) ;
113+ await requestUpdateInfo ( updator ) ;
114+ const requestOptions = mockUrllib . getLastRequestOptions ( ) ;
115+ assert . deepEqual ( requestOptions . headers , headers ) ;
116+ } ) ;
117+
118+ it ( '未传 headers 时不影响请求' , async ( ) => {
119+ const updator = {
120+ url : 'https://github.com' ,
121+ } ;
122+ mockUrllib . setReturn ( {
123+ status : 200 ,
124+ data : {
125+ isUpdate : true ,
126+ version : '1.0.0' ,
127+ } ,
128+ } ) ;
129+ await requestUpdateInfo ( updator ) ;
130+ const requestOptions = mockUrllib . getLastRequestOptions ( ) ;
131+ assert . equal ( requestOptions . headers , undefined ) ;
132+ } ) ;
96133 } ) ;
97134} ) ;
0 commit comments