@@ -3,13 +3,14 @@ import http from 'http';
33import { Application } from 'express' ;
44import { CliArg , ISessionCapability , MockConfig , RecordConfig , RequestInfo , ReplayConfig , SniffConfig } from './types' ;
55import _ from 'lodash' ;
6- import { configureWifiProxy , isRealDevice } from './utils/adb' ;
6+ import { configureWifiProxy , isRealDevice , getGlobalProxyValue } from './utils/adb' ;
77import { cleanUpProxyServer , sanitizeMockConfig , setupProxyServer } from './utils/proxy' ;
88import proxyCache from './proxy-cache' ;
99import logger from './logger' ;
1010import log from './logger' ;
1111
1212export class AppiumInterceptorPlugin extends BasePlugin {
13+
1314 static executeMethodMap = {
1415 'interceptor: addMock' : {
1516 command : 'addMock' ,
@@ -98,8 +99,10 @@ export class AppiumInterceptorPlugin extends BasePlugin {
9899 return response ;
99100 }
100101 const realDevice = await isRealDevice ( adb , deviceUDID ) ;
101- const proxy = await setupProxyServer ( sessionId , deviceUDID , realDevice ) ;
102- await configureWifiProxy ( adb , deviceUDID , realDevice , proxy ) ;
102+ const currentGlobalProxy = await getGlobalProxyValue ( adb , deviceUDID )
103+
104+ const proxy = await setupProxyServer ( sessionId , deviceUDID , realDevice , currentGlobalProxy ) ;
105+ await configureWifiProxy ( adb , deviceUDID , realDevice , proxy . options ) ;
103106 proxyCache . add ( sessionId , proxy ) ;
104107 }
105108 log . info ( "Creating session for appium interceptor" ) ;
@@ -110,7 +113,7 @@ export class AppiumInterceptorPlugin extends BasePlugin {
110113 const proxy = proxyCache . get ( sessionId ) ;
111114 if ( proxy ) {
112115 const adb = driver . sessions [ sessionId ] ?. adb ;
113- await configureWifiProxy ( adb , proxy . deviceUDID , false ) ;
116+ await configureWifiProxy ( adb , proxy . deviceUDID , false , proxy . previousGlobalProxy ) ;
114117 await cleanUpProxyServer ( proxy ) ;
115118 }
116119 return next ( ) ;
@@ -122,7 +125,7 @@ export class AppiumInterceptorPlugin extends BasePlugin {
122125 const proxy = proxyCache . get ( sessionId ) ;
123126 if ( proxy ) {
124127 const adb = driver . sessions [ sessionId ] ?. adb ;
125- await configureWifiProxy ( adb , proxy . deviceUDID , false ) ;
128+ await configureWifiProxy ( adb , proxy . deviceUDID , false , proxy . previousGlobalProxy ) ;
126129 await cleanUpProxyServer ( proxy ) ;
127130 }
128131 }
0 commit comments