@@ -488,4 +488,41 @@ describe("runDockerComposeUpWithPortCheck", () => {
488488 expect ( recorded . some ( ( entry ) => isDockerComposeUpWithBuild ( entry ) ) ) . toBe ( false )
489489 } )
490490 ) . pipe ( Effect . provide ( NodeContext . layer ) ) )
491+
492+ it . effect ( "does not rebuild when prebuilt-image reuse compose up fails" , ( ) =>
493+ withTempDir ( ( root ) =>
494+ Effect . gen ( function * ( _ ) {
495+ const path = yield * _ ( Path . Path )
496+ const outDir = path . join ( root , "project" )
497+ const targetDir = "/home/dev/workspaces/org/repo"
498+ const globalConfig = makeTemplateConfig ( root , outDir , path , targetDir )
499+ const projectConfig : TemplateConfig = {
500+ ...makeTemplateConfig ( root , outDir , path , targetDir ) ,
501+ imageName : "docker-git-e2e-project:latest"
502+ }
503+ const recorded : Array < RecordedCommand > = [ ]
504+ const executor = makeFakeExecutor ( recorded , { failGpuComposeUp : true } )
505+
506+ yield * _ (
507+ prepareProjectFiles ( outDir , root , globalConfig , projectConfig , {
508+ force : false ,
509+ forceEnv : false
510+ } )
511+ )
512+
513+ const result = yield * _ (
514+ runDockerComposeUpWithPortCheck ( outDir , {
515+ buildMode : "reuse" ,
516+ waitForPostStart : false
517+ } ) . pipe (
518+ Effect . provideService ( CommandExecutor . CommandExecutor , executor ) ,
519+ Effect . either
520+ )
521+ )
522+
523+ expect ( result . _tag ) . toBe ( "Left" )
524+ expect ( recorded . filter ( ( entry ) => isDockerComposeUpReuse ( entry ) ) . length ) . toBe ( 1 )
525+ expect ( recorded . some ( ( entry ) => isDockerComposeUpWithBuild ( entry ) ) ) . toBe ( false )
526+ } )
527+ ) . pipe ( Effect . provide ( NodeContext . layer ) ) )
491528} )
0 commit comments