@@ -113,6 +113,7 @@ vi.mock("openclaw/plugin-sdk/runtime-env", () => ({
113113let resolveTelegramFetch : typeof import ( "./fetch.js" ) . resolveTelegramFetch ;
114114let resolveTelegramApiBase : typeof import ( "./fetch.js" ) . resolveTelegramApiBase ;
115115let resolveTelegramTransport : typeof import ( "./fetch.js" ) . resolveTelegramTransport ;
116+ let shouldRetryTelegramTransportFallback : typeof import ( "./fetch.js" ) . shouldRetryTelegramTransportFallback ;
116117const tempDirs : string [ ] = [ ] ;
117118
118119type TelegramDispatcherPolicy = NonNullable <
@@ -125,8 +126,12 @@ type ExplicitProxyTelegramDispatcherPolicy = Extract<
125126> ;
126127
127128beforeAll ( async ( ) => {
128- ( { resolveTelegramApiBase, resolveTelegramFetch, resolveTelegramTransport } =
129- await import ( "./fetch.js" ) ) ;
129+ ( {
130+ resolveTelegramApiBase,
131+ resolveTelegramFetch,
132+ resolveTelegramTransport,
133+ shouldRetryTelegramTransportFallback,
134+ } = await import ( "./fetch.js" ) ) ;
130135} ) ;
131136
132137beforeEach ( ( ) => {
@@ -1327,4 +1332,24 @@ describe("resolveTelegramFetch", () => {
13271332 await expect ( transport . close ( ) ) . resolves . toBeUndefined ( ) ;
13281333 } ) ;
13291334 } ) ;
1335+
1336+ describe ( "shouldRetryTelegramTransportFallback" , ( ) => {
1337+ it ( "returns false for EADDRNOTAVAIL code string" , ( ) => {
1338+ const err = buildFetchFallbackError ( "EADDRNOTAVAIL" ) ;
1339+ expect ( shouldRetryTelegramTransportFallback ( err ) ) . toBe ( false ) ;
1340+ } ) ;
1341+
1342+ it ( "returns false for EADDRNOTAVAIL numeric errno" , ( ) => {
1343+ const connectErr = Object . assign ( new Error ( "connect EADDRNOTAVAIL api.telegram.org:443" ) , {
1344+ errno : 99 ,
1345+ } ) ;
1346+ const err = Object . assign ( new TypeError ( "fetch failed" ) , { cause : connectErr } ) ;
1347+ expect ( shouldRetryTelegramTransportFallback ( err ) ) . toBe ( false ) ;
1348+ } ) ;
1349+
1350+ it ( "returns true for other network errors" , ( ) => {
1351+ const err = buildFetchFallbackError ( "ENETUNREACH" ) ;
1352+ expect ( shouldRetryTelegramTransportFallback ( err ) ) . toBe ( true ) ;
1353+ } ) ;
1354+ } ) ;
13301355} ) ;
0 commit comments