Skip to content

Commit f783f22

Browse files
fix(image): fix flaky image rebuild test
1 parent 816e776 commit f783f22

2 files changed

Lines changed: 22 additions & 18 deletions

File tree

internal/api/deploy_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ func TestDeployHandler_Success(t *testing.T) {
8787

8888
req := httptest.NewRequest(http.MethodPost, "/functions", body)
8989
req.Header.Set("Content-Type", writer.FormDataContentType())
90+
req.Host = "localhost"
9091

9192
rr := httptest.NewRecorder()
9293

internal/sdk/image_test.go

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ func TestPullImage_InvalidImage(t *testing.T) {
104104
}
105105

106106
func TestBuildImage_Success(t *testing.T) {
107+
t.Parallel()
107108

108109
// data, err := os.ReadFile("test_samples/function.tar")
109110
tarstream, err := buildcontext.CreateTarStream("../../samples/hello", "node")
@@ -118,6 +119,7 @@ func TestBuildImage_Success(t *testing.T) {
118119
}
119120

120121
func TestBuildImage_InvalidDirectory(t *testing.T) {
122+
t.Parallel()
121123

122124
tarstream, err := buildcontext.CreateTarStream("../test_samples/invalid", "node")
123125
if err == nil {
@@ -131,41 +133,42 @@ func TestBuildImage_InvalidDirectory(t *testing.T) {
131133
}
132134

133135
func TestBuildImage_duplicateImageName(t *testing.T) {
134-
testImageName := "test-duplicate-rebuild"
136+
t.Parallel()
137+
138+
imageName := "test-rebuild-image:latest"
139+
140+
defer func() {
141+
err := testDocker.RemoveImage(testCtx, imageName)
142+
if err != nil {
143+
t.Logf("failed to remove image: %v", err)
144+
}
145+
}()
135146

136-
// Create first build
137147
tarstream1, err := buildcontext.CreateTarStream("../../samples/hello", "node")
138148
if err != nil {
139149
t.Skipf("unexpected error - failed to create Tar stream: %v", err)
140150
}
141151

142-
err = testDocker.BuildImage(testCtx, testImageName, tarstream1, io.Discard)
152+
// First build
153+
err = testDocker.BuildImage(testCtx, imageName, tarstream1, io.Discard)
143154
if err != nil {
144-
t.Fatalf("unexpected error on first build: %v", err)
155+
t.Fatalf("expected first build to succeed, got error: %v", err)
145156
}
146-
t.Log("First build succeeded")
147-
148-
defer func() {
149-
err := testDocker.RemoveImage(testCtx, testImageName+":latest")
150-
if err != nil {
151-
t.Logf("failed to remove image: %v", err)
152-
}
153-
}()
157+
t.Log("first build succeeded")
154158

155-
// Create second build with same image name (rebuild/redeployment scenario)
159+
// Second build with same image name - simulates redeployment
160+
// BuildImage with ForceRemove: true should handle this gracefully
156161
tarstream2, err := buildcontext.CreateTarStream("../../samples/hello", "node")
157162
if err != nil {
158163
t.Skipf("unexpected error - failed to create Tar stream: %v", err)
159164
}
160165

161-
// BuildImage now allows rebuilding existing images with ForceRemove: true
162-
// This test verifies that rebuilding an existing image succeeds (for redeployment)
163-
err = testDocker.BuildImage(testCtx, testImageName, tarstream2, io.Discard)
166+
err = testDocker.BuildImage(testCtx, imageName, tarstream2, io.Discard)
164167
if err != nil {
165-
t.Fatalf("expected build to succeed for duplicate image name (rebuild), got error: %v", err)
168+
t.Fatalf("expected rebuild with same image name to succeed, got error: %v", err)
166169
}
167170

168-
t.Log("successfully rebuilt existing image")
171+
t.Log("successfully rebuilt image with same name")
169172
}
170173

171174
func TestTagImage_Success(t *testing.T) {

0 commit comments

Comments
 (0)