@@ -11,6 +11,7 @@ import (
1111
1212 "log/slog"
1313
14+ "github.com/kernel/kernel-images/server/lib/capturesession"
1415 "github.com/kernel/kernel-images/server/lib/devtoolsproxy"
1516 "github.com/kernel/kernel-images/server/lib/events"
1617 "github.com/kernel/kernel-images/server/lib/nekoclient"
@@ -26,7 +27,7 @@ func TestApiService_StartRecording(t *testing.T) {
2627
2728 t .Run ("success" , func (t * testing.T ) {
2829 mgr := recorder .NewFFmpegManager ()
29- svc , err := New ( mgr , newMockFactory (), newTestUpstreamManager (), scaletozero . NewNoopController (), newMockNekoClient ( t ), newCaptureSession ( t ), 0 )
30+ svc , err := newSvc ( t , mgr )
3031 require .NoError (t , err )
3132
3233 resp , err := svc .StartRecording (ctx , oapi.StartRecordingRequestObject {})
@@ -40,7 +41,7 @@ func TestApiService_StartRecording(t *testing.T) {
4041
4142 t .Run ("already recording" , func (t * testing.T ) {
4243 mgr := recorder .NewFFmpegManager ()
43- svc , err := New ( mgr , newMockFactory (), newTestUpstreamManager (), scaletozero . NewNoopController (), newMockNekoClient ( t ), newCaptureSession ( t ), 0 )
44+ svc , err := newSvc ( t , mgr )
4445 require .NoError (t , err )
4546
4647 // First start should succeed
@@ -55,7 +56,7 @@ func TestApiService_StartRecording(t *testing.T) {
5556
5657 t .Run ("custom ids don't collide" , func (t * testing.T ) {
5758 mgr := recorder .NewFFmpegManager ()
58- svc , err := New ( mgr , newMockFactory (), newTestUpstreamManager (), scaletozero . NewNoopController (), newMockNekoClient ( t ), newCaptureSession ( t ), 0 )
59+ svc , err := newSvc ( t , mgr )
5960 require .NoError (t , err )
6061
6162 for i := 0 ; i < 5 ; i ++ {
@@ -88,7 +89,7 @@ func TestApiService_StopRecording(t *testing.T) {
8889
8990 t .Run ("no active recording" , func (t * testing.T ) {
9091 mgr := recorder .NewFFmpegManager ()
91- svc , err := New ( mgr , newMockFactory (), newTestUpstreamManager (), scaletozero . NewNoopController (), newMockNekoClient ( t ), newCaptureSession ( t ), 0 )
92+ svc , err := newSvc ( t , mgr )
9293 require .NoError (t , err )
9394
9495 resp , err := svc .StopRecording (ctx , oapi.StopRecordingRequestObject {})
@@ -101,7 +102,7 @@ func TestApiService_StopRecording(t *testing.T) {
101102 rec := & mockRecorder {id : "default" , isRecordingFlag : true }
102103 require .NoError (t , mgr .RegisterRecorder (ctx , rec ), "failed to register recorder" )
103104
104- svc , err := New ( mgr , newMockFactory (), newTestUpstreamManager (), scaletozero . NewNoopController (), newMockNekoClient ( t ), newCaptureSession ( t ), 0 )
105+ svc , err := newSvc ( t , mgr )
105106 require .NoError (t , err )
106107 resp , err := svc .StopRecording (ctx , oapi.StopRecordingRequestObject {})
107108 require .NoError (t , err )
@@ -116,7 +117,7 @@ func TestApiService_StopRecording(t *testing.T) {
116117
117118 force := true
118119 req := oapi.StopRecordingRequestObject {Body : & oapi.StopRecordingJSONRequestBody {ForceStop : & force }}
119- svc , err := New ( mgr , newMockFactory (), newTestUpstreamManager (), scaletozero . NewNoopController (), newMockNekoClient ( t ), newCaptureSession ( t ), 0 )
120+ svc , err := newSvc ( t , mgr )
120121 require .NoError (t , err )
121122 resp , err := svc .StopRecording (ctx , req )
122123 require .NoError (t , err )
@@ -130,7 +131,7 @@ func TestApiService_DownloadRecording(t *testing.T) {
130131
131132 t .Run ("not found" , func (t * testing.T ) {
132133 mgr := recorder .NewFFmpegManager ()
133- svc , err := New ( mgr , newMockFactory (), newTestUpstreamManager (), scaletozero . NewNoopController (), newMockNekoClient ( t ), newCaptureSession ( t ), 0 )
134+ svc , err := newSvc ( t , mgr )
134135 require .NoError (t , err )
135136 resp , err := svc .DownloadRecording (ctx , oapi.DownloadRecordingRequestObject {})
136137 require .NoError (t , err )
@@ -150,7 +151,7 @@ func TestApiService_DownloadRecording(t *testing.T) {
150151 rec := & mockRecorder {id : "default" , isRecordingFlag : true , recordingData : randomBytes (minRecordingSizeInBytes - 1 )}
151152 require .NoError (t , mgr .RegisterRecorder (ctx , rec ), "failed to register recorder" )
152153
153- svc , err := New ( mgr , newMockFactory (), newTestUpstreamManager (), scaletozero . NewNoopController (), newMockNekoClient ( t ), newCaptureSession ( t ), 0 )
154+ svc , err := newSvc ( t , mgr )
154155 require .NoError (t , err )
155156 // will return a 202 when the recording is too small
156157 resp , err := svc .DownloadRecording (ctx , oapi.DownloadRecordingRequestObject {})
@@ -180,7 +181,7 @@ func TestApiService_DownloadRecording(t *testing.T) {
180181 rec := & mockRecorder {id : "default" , recordingData : data }
181182 require .NoError (t , mgr .RegisterRecorder (ctx , rec ), "failed to register recorder" )
182183
183- svc , err := New ( mgr , newMockFactory (), newTestUpstreamManager (), scaletozero . NewNoopController (), newMockNekoClient ( t ), newCaptureSession ( t ), 0 )
184+ svc , err := newSvc ( t , mgr )
184185 require .NoError (t , err )
185186 resp , err := svc .DownloadRecording (ctx , oapi.DownloadRecordingRequestObject {})
186187 require .NoError (t , err )
@@ -200,7 +201,7 @@ func TestApiService_Shutdown(t *testing.T) {
200201 rec := & mockRecorder {id : "default" , isRecordingFlag : true }
201202 require .NoError (t , mgr .RegisterRecorder (ctx , rec ), "failed to register recorder" )
202203
203- svc , err := New ( mgr , newMockFactory (), newTestUpstreamManager (), scaletozero . NewNoopController (), newMockNekoClient ( t ), newCaptureSession ( t ), 0 )
204+ svc , err := newSvc ( t , mgr )
204205 require .NoError (t , err )
205206
206207 require .NoError (t , svc .Shutdown (ctx ))
@@ -304,23 +305,26 @@ func newMockNekoClient(t *testing.T) *nekoclient.AuthClient {
304305 return client
305306}
306307
307- func newCaptureSession (t * testing.T ) * events .CaptureSession {
308+ func newCaptureSession (t * testing.T ) ( * capturesession .CaptureSession , * events. EventStream ) {
308309 t .Helper ()
309- cs , err := events .NewCaptureSession (events.CaptureSessionConfig {
310- LogDir : t .TempDir (),
311- RingCapacity : 64 ,
312- })
310+ es , err := events .NewEventStream (events.EventStreamConfig {RingCapacity : 64 })
313311 if err != nil {
314312 t .Fatal (err )
315313 }
316- t .Cleanup (func () { cs .Close () })
317- return cs
314+ return capturesession .NewCaptureSession (es ), es
315+ }
316+
317+ // newSvc constructs an ApiService with a fresh capture session and event stream.
318+ func newSvc (t * testing.T , mgr recorder.RecordManager ) (* ApiService , error ) {
319+ t .Helper ()
320+ cs , es := newCaptureSession (t )
321+ return New (mgr , newMockFactory (), newTestUpstreamManager (), scaletozero .NewNoopController (), newMockNekoClient (t ), cs , es , 0 )
318322}
319323
320324func TestApiService_PatchChromiumFlags (t * testing.T ) {
321325 ctx := context .Background ()
322326 mgr := recorder .NewFFmpegManager ()
323- svc , err := New ( mgr , newMockFactory (), newTestUpstreamManager (), scaletozero . NewNoopController (), newMockNekoClient ( t ), newCaptureSession ( t ), 0 )
327+ svc , err := newSvc ( t , mgr )
324328 require .NoError (t , err )
325329
326330 // Test with valid flags
0 commit comments