11import * as fs from "fs/promises" ;
22import * as path from "path" ;
33import * as os from "os" ;
4- import { describe , it , expect , beforeEach , afterEach } from "bun:test " ;
4+ import { describe , it , expect , beforeEach , afterEach } from "@jest/globals " ;
55import { Config } from "@/config" ;
66import { InitStateManager } from "./initStateManager" ;
77import type { WorkspaceInitEvent } from "@/types/ipc" ;
@@ -53,8 +53,8 @@ describe("InitStateManager", () => {
5353 manager . appendOutput ( workspaceId , "Installing deps..." , false ) ;
5454 manager . appendOutput ( workspaceId , "Done!" , false ) ;
5555 expect ( manager . getInitState ( workspaceId ) ?. lines ) . toEqual ( [
56- { line : "Installing deps..." , isError : false , timestamp : expect . any ( Number ) as number } ,
57- { line : "Done!" , isError : false , timestamp : expect . any ( Number ) as number } ,
56+ { line : "Installing deps..." , isError : false , timestamp : expect . any ( Number ) } ,
57+ { line : "Done!" , isError : false , timestamp : expect . any ( Number ) } ,
5858 ] ) ;
5959
6060 // End init (await to ensure event fires)
@@ -79,8 +79,8 @@ describe("InitStateManager", () => {
7979
8080 const state = manager . getInitState ( workspaceId ) ;
8181 expect ( state ?. lines ) . toEqual ( [
82- { line : "stdout line" , isError : false , timestamp : expect . any ( Number ) as number } ,
83- { line : "stderr line" , isError : true , timestamp : expect . any ( Number ) as number } ,
82+ { line : "stdout line" , isError : false , timestamp : expect . any ( Number ) } ,
83+ { line : "stderr line" , isError : true , timestamp : expect . any ( Number ) } ,
8484 ] ) ;
8585 } ) ;
8686
@@ -109,8 +109,8 @@ describe("InitStateManager", () => {
109109 expect ( diskState ?. status ) . toBe ( "success" ) ;
110110 expect ( diskState ?. exitCode ) . toBe ( 0 ) ;
111111 expect ( diskState ?. lines ) . toEqual ( [
112- { line : "Line 1" , isError : false , timestamp : expect . any ( Number ) as number } ,
113- { line : "Line 2" , isError : true , timestamp : expect . any ( Number ) as number } ,
112+ { line : "Line 1" , isError : false , timestamp : expect . any ( Number ) } ,
113+ { line : "Line 2" , isError : true , timestamp : expect . any ( Number ) } ,
114114 ] ) ;
115115 } ) ;
116116
@@ -221,15 +221,23 @@ describe("InitStateManager", () => {
221221 expect ( stateAfterDelete ) . toBeNull ( ) ;
222222 } ) ;
223223
224- it ( "should clear in-memory state" , ( ) => {
224+ it ( "should clear in-memory state" , async ( ) => {
225225 const workspaceId = "test-workspace" ;
226226 manager . startInit ( workspaceId , "/path/to/hook" ) ;
227227
228228 expect ( manager . getInitState ( workspaceId ) ) . toBeTruthy ( ) ;
229229
230+ // Get the init promise before clearing
231+ const initPromise = manager . waitForInit ( workspaceId ) ;
232+
233+ // Clear in-memory state (should reject pending promises)
230234 manager . clearInMemoryState ( workspaceId ) ;
231235
236+ // Verify state is cleared
232237 expect ( manager . getInitState ( workspaceId ) ) . toBeUndefined ( ) ;
238+
239+ // Verify the promise was rejected
240+ await expect ( initPromise ) . rejects . toThrow ( "Workspace test-workspace was deleted" ) ;
233241 } ) ;
234242 } ) ;
235243
0 commit comments