@@ -263,21 +263,31 @@ describe('smoketest: object-oriented devbox', () => {
263263 await devbox . shutdown ( ) ;
264264 } ) ;
265265
266- test ( 'create and remove tunnel' , async ( ) => {
266+ test ( 'create and remove legacy tunnel (deprecated) ' , async ( ) => {
267267 const devbox = await sdk . devbox . create ( {
268268 name : uniqueName ( 'sdk-devbox-tunnel' ) ,
269269 launch_parameters : { resource_size_request : 'X_SMALL' , keep_alive_time_seconds : 60 * 5 } , // 5 minutes
270270 } ) ;
271271
272- // Create tunnel
273- const tunnel = await devbox . net . createTunnel ( { port : 8080 } ) ;
274- expect ( tunnel ) . toBeDefined ( ) ;
272+ try {
273+ // Create legacy tunnel using deprecated createTunnel method
274+ const tunnel = await devbox . net . createTunnel ( { port : 8080 } ) ;
275275
276- // Remove tunnel
277- await devbox . net . removeTunnel ( { port : 8080 } ) ;
276+ // Verify the legacy tunnel response structure
277+ expect ( tunnel ) . toBeDefined ( ) ;
278+ expect ( tunnel . devbox_id ) . toBe ( devbox . id ) ;
279+ expect ( tunnel . port ) . toBe ( 8080 ) ;
280+ expect ( tunnel . url ) . toBeDefined ( ) ;
278281
279- // Clean up
280- await devbox . shutdown ( ) ;
282+ // Verify the legacy tunnel URL format: https://{devbox_id}-{port}.tunnel.runloop.ai
283+ const expectedUrlPattern = new RegExp ( `^https://${ devbox . id } -8080\\.tunnel\\.runloop\\.ai$` ) ;
284+ expect ( tunnel . url ) . toMatch ( expectedUrlPattern ) ;
285+
286+ // Remove legacy tunnel
287+ await devbox . net . removeTunnel ( { port : 8080 } ) ;
288+ } finally {
289+ await devbox . shutdown ( ) ;
290+ }
281291 } ) ;
282292
283293 test ( 'enable V2 tunnel (open)' , async ( ) => {
0 commit comments