1- import { describe , it , expect , beforeAll , afterAll } from 'bun:test'
1+ import { describe , it , expect } from 'bun:test'
22import {
3- initManager ,
43 manager ,
5- rawOutputCallbacks ,
64 registerRawOutputCallback ,
75 registerSessionUpdateCallback ,
8- sessionUpdateCallbacks ,
96} from '../src/plugin/pty/manager.ts'
107import { PTYServer } from '../src/web/server/server.ts'
118import type { PTYSessionInfo } from '../src/plugin/pty/types.ts'
9+ import { managedTestServer } from './utils.ts'
1210
1311describe ( 'Web Server' , ( ) => {
14- const fakeClient = {
15- app : {
16- log : async ( _opts : any ) => {
17- // Mock logger - do nothing
18- } ,
19- } ,
20- } as any
21-
22- let server : PTYServer
23- let disposableStack : DisposableStack
24-
25- beforeAll ( async ( ) => {
26- disposableStack = new DisposableStack ( )
27- initManager ( fakeClient )
28- server = await PTYServer . createServer ( )
29- disposableStack . use ( server )
30- } )
31-
32- afterAll ( ( ) => {
33- manager . clearAllSessions ( )
34- disposableStack . dispose ( )
35- sessionUpdateCallbacks . length = 0
36- rawOutputCallbacks . length = 0
37- } )
12+ // const fakeClient = {
13+ // app: {
14+ // log: async (_opts: any) => {
15+ // // Mock logger - do nothing
16+ // },
17+ // },
18+ // } as any
19+
20+ // let server: PTYServer
21+ // let disposableStack: DisposableStack
22+
23+ // beforeAll(async () => {
24+ // disposableStack = new DisposableStack()
25+ // initManager(fakeClient)
26+ // server = await PTYServer.createServer()
27+ // disposableStack.use(server)
28+ // })
29+
30+ // afterAll(() => {
31+ // manager.clearAllSessions()
32+ // disposableStack.dispose()
33+ // sessionUpdateCallbacks.length = 0
34+ // rawOutputCallbacks.length = 0
35+ // })
3836
3937 describe ( 'Server Lifecycle' , ( ) => {
4038 it ( 'should start server successfully' , async ( ) => {
@@ -61,7 +59,7 @@ describe('Web Server', () => {
6159
6260 describe ( 'HTTP Endpoints' , ( ) => {
6361 it ( 'should serve built assets' , async ( ) => {
64- const response = await fetch ( server . server . url )
62+ const response = await fetch ( managedTestServer . server . server . url )
6563 expect ( response . status ) . toBe ( 200 )
6664 const html = await response . text ( )
6765
@@ -84,21 +82,21 @@ describe('Web Server', () => {
8482 }
8583
8684 const jsAsset = jsMatch [ 1 ]
87- const jsResponse = await fetch ( `${ server . server . url } /assets/${ jsAsset } ` )
85+ const jsResponse = await fetch ( `${ managedTestServer . server . server . url } /assets/${ jsAsset } ` )
8886 expect ( jsResponse . status ) . toBe ( 200 )
8987 const ct = jsResponse . headers . get ( 'content-type' )
9088 expect ( ( ct || '' ) . toLowerCase ( ) ) . toMatch ( / ^ ( a p p l i c a t i o n | t e x t ) \/ j a v a s c r i p t ( ; .* ) ? $ / )
9189
9290 const cssAsset = cssMatch [ 1 ]
93- const cssResponse = await fetch ( `${ server . server . url } /assets/${ cssAsset } ` )
91+ const cssResponse = await fetch ( `${ managedTestServer . server . server . url } /assets/${ cssAsset } ` )
9492 expect ( cssResponse . status ) . toBe ( 200 )
9593 expect ( ( cssResponse . headers . get ( 'content-type' ) || '' ) . toLowerCase ( ) ) . toMatch (
9694 / ^ t e x t \/ c s s ( ; .* ) ? $ /
9795 )
9896 } )
9997
10098 it ( 'should serve HTML on root path' , async ( ) => {
101- const response = await fetch ( server . server . url )
99+ const response = await fetch ( managedTestServer . server . server . url )
102100 expect ( response . status ) . toBe ( 200 )
103101 expect ( response . headers . get ( 'content-type' ) ) . toContain ( 'text/html' )
104102
@@ -108,7 +106,7 @@ describe('Web Server', () => {
108106 } )
109107
110108 it ( 'should return sessions list' , async ( ) => {
111- const response = await fetch ( `${ server . server . url } /api/sessions` )
109+ const response = await fetch ( `${ managedTestServer . server . server . url } /api/sessions` )
112110 expect ( response . status ) . toBe ( 200 )
113111 expect ( response . headers . get ( 'content-type' ) ) . toContain ( 'application/json' )
114112
@@ -140,7 +138,7 @@ describe('Web Server', () => {
140138
141139 await rawDataPromise
142140
143- const response = await fetch ( `${ server . server . url } /api/sessions/${ session . id } ` )
141+ const response = await fetch ( `${ managedTestServer . server . server . url } /api/sessions/${ session . id } ` )
144142 expect ( response . status ) . toBe ( 200 )
145143
146144 const sessionData = await response . json ( )
@@ -151,7 +149,7 @@ describe('Web Server', () => {
151149
152150 it ( 'should return 404 for non-existent session' , async ( ) => {
153151 const nonexistentId = crypto . randomUUID ( )
154- const response = await fetch ( `${ server . server . url } /api/sessions/${ nonexistentId } ` )
152+ const response = await fetch ( `${ managedTestServer . server . server . url } /api/sessions/${ nonexistentId } ` )
155153 expect ( response . status ) . toBe ( 404 )
156154 } , 200 )
157155
@@ -176,7 +174,7 @@ describe('Web Server', () => {
176174 // Wait for PTY to start
177175 await sessionUpdatePromise
178176
179- const response = await fetch ( `${ server . server . url } /api/sessions/${ session . id } /input` , {
177+ const response = await fetch ( `${ managedTestServer . server . server . url } /api/sessions/${ session . id } /input` , {
180178 method : 'POST' ,
181179 headers : { 'Content-Type' : 'application/json' } ,
182180 body : JSON . stringify ( { data : 'test input\n' } ) ,
@@ -215,7 +213,7 @@ describe('Web Server', () => {
215213 // Wait for PTY to start
216214 await sessionRunningPromise
217215
218- const response = await fetch ( `${ server . server . url } /api/sessions/${ session . id } ` , {
216+ const response = await fetch ( `${ managedTestServer . server . server . url } /api/sessions/${ session . id } ` , {
219217 method : 'DELETE' ,
220218 } )
221219
@@ -247,7 +245,7 @@ describe('Web Server', () => {
247245 // Wait a bit for output to be captured
248246 await sessionExitedPromise
249247
250- const response = await fetch ( `${ server . server . url } /api/sessions/${ session . id } /buffer/raw` )
248+ const response = await fetch ( `${ managedTestServer . server . server . url } /api/sessions/${ session . id } /buffer/raw` )
251249 expect ( response . status ) . toBe ( 200 )
252250
253251 const bufferData = await response . json ( )
@@ -260,7 +258,7 @@ describe('Web Server', () => {
260258 } )
261259
262260 it ( 'should return index.html for non-existent endpoints' , async ( ) => {
263- const response = await fetch ( `${ server . server . url } /api/nonexistent` )
261+ const response = await fetch ( `${ managedTestServer . server . server . url } /api/nonexistent` )
264262 expect ( response . status ) . toBe ( 200 )
265263 const text = await response . text ( )
266264 expect ( text ) . toContain ( '<div id=\"root\"></div>' )
0 commit comments