Skip to content

Commit ca7bfbc

Browse files
leodidoona-agent
andcommitted
fix(test): correct workspace structure in integration tests
- Use proper BUILD.yaml in component directories instead of inline components - Fix package references from :app to app:docker - Create app/ subdirectory for component files - Follows leeway workspace conventions Co-authored-by: Ona <no-reply@ona.com>
1 parent 2d374a7 commit ca7bfbc

File tree

1 file changed

+54
-34
lines changed

1 file changed

+54
-34
lines changed

pkg/leeway/build_integration_test.go

Lines changed: 54 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -109,36 +109,46 @@ func TestDockerPackage_ExportToCache_Integration(t *testing.T) {
109109
// Create temporary workspace
110110
tmpDir := t.TempDir()
111111

112+
// Create WORKSPACE.yaml
113+
workspaceYAML := `defaultTarget: "app:docker"`
114+
workspacePath := filepath.Join(tmpDir, "WORKSPACE.yaml")
115+
if err := os.WriteFile(workspacePath, []byte(workspaceYAML), 0644); err != nil {
116+
t.Fatal(err)
117+
}
118+
119+
// Create component directory
120+
appDir := filepath.Join(tmpDir, "app")
121+
if err := os.MkdirAll(appDir, 0755); err != nil {
122+
t.Fatal(err)
123+
}
124+
112125
// Create a simple Dockerfile
113126
dockerfile := `FROM alpine:latest
114127
LABEL test="true"
115128
CMD ["echo", "test"]`
116129

117-
dockerfilePath := filepath.Join(tmpDir, "Dockerfile")
130+
dockerfilePath := filepath.Join(appDir, "Dockerfile")
118131
if err := os.WriteFile(dockerfilePath, []byte(dockerfile), 0644); err != nil {
119132
t.Fatal(err)
120133
}
121134

122-
// Create WORKSPACE.yaml with proper formatting
135+
// Create BUILD.yaml with proper formatting
123136
imageSection := ""
124137
if tt.hasImages {
125138
imageSection = `
126-
image:
127-
- test-leeway:latest`
139+
image:
140+
- test-leeway:latest`
128141
}
129142

130-
workspaceYAML := fmt.Sprintf(`defaultTarget: ":app"
131-
components:
132-
- name: "."
133-
packages:
134-
- name: app
135-
type: docker
136-
config:
137-
dockerfile: Dockerfile
138-
exportToCache: %t%s`, tt.exportToCache, imageSection)
143+
buildYAML := fmt.Sprintf(`packages:
144+
- name: docker
145+
type: docker
146+
config:
147+
dockerfile: Dockerfile
148+
exportToCache: %t%s`, tt.exportToCache, imageSection)
139149

140-
workspacePath := filepath.Join(tmpDir, "WORKSPACE.yaml")
141-
if err := os.WriteFile(workspacePath, []byte(workspaceYAML), 0644); err != nil {
150+
buildPath := filepath.Join(appDir, "BUILD.yaml")
151+
if err := os.WriteFile(buildPath, []byte(buildYAML), 0644); err != nil {
142152
t.Fatal(err)
143153
}
144154

@@ -149,9 +159,9 @@ components:
149159
}
150160

151161
// Get package
152-
pkg, ok := workspace.Packages[":app"]
162+
pkg, ok := workspace.Packages["app:docker"]
153163
if !ok {
154-
t.Fatalf("Package :app not found in workspace")
164+
t.Fatalf("Package app:docker not found in workspace")
155165
}
156166

157167
// Create local cache
@@ -279,31 +289,41 @@ func TestDockerPackage_CacheRoundTrip_Integration(t *testing.T) {
279289
tmpDir := t.TempDir()
280290
testImage := "test-leeway-roundtrip:latest"
281291

292+
// Create WORKSPACE.yaml
293+
workspaceYAML := `defaultTarget: "app:docker"`
294+
workspacePath := filepath.Join(tmpDir, "WORKSPACE.yaml")
295+
if err := os.WriteFile(workspacePath, []byte(workspaceYAML), 0644); err != nil {
296+
t.Fatal(err)
297+
}
298+
299+
// Create component directory
300+
appDir := filepath.Join(tmpDir, "app")
301+
if err := os.MkdirAll(appDir, 0755); err != nil {
302+
t.Fatal(err)
303+
}
304+
282305
// Create a simple Dockerfile with identifiable content
283306
dockerfile := `FROM alpine:latest
284307
RUN echo "test-content-12345" > /test-file.txt
285308
CMD ["cat", "/test-file.txt"]`
286309

287-
dockerfilePath := filepath.Join(tmpDir, "Dockerfile")
310+
dockerfilePath := filepath.Join(appDir, "Dockerfile")
288311
if err := os.WriteFile(dockerfilePath, []byte(dockerfile), 0644); err != nil {
289312
t.Fatal(err)
290313
}
291314

292-
// Create WORKSPACE.yaml with exportToCache enabled
293-
workspaceYAML := fmt.Sprintf(`defaultTarget: ":app"
294-
components:
295-
- name: "."
296-
packages:
297-
- name: app
298-
type: docker
299-
config:
300-
dockerfile: Dockerfile
301-
exportToCache: true
302-
image:
303-
- %s`, testImage)
315+
// Create BUILD.yaml with exportToCache enabled
316+
buildYAML := fmt.Sprintf(`packages:
317+
- name: docker
318+
type: docker
319+
config:
320+
dockerfile: Dockerfile
321+
exportToCache: true
322+
image:
323+
- %s`, testImage)
304324

305-
workspacePath := filepath.Join(tmpDir, "WORKSPACE.yaml")
306-
if err := os.WriteFile(workspacePath, []byte(workspaceYAML), 0644); err != nil {
325+
buildPath := filepath.Join(appDir, "BUILD.yaml")
326+
if err := os.WriteFile(buildPath, []byte(buildYAML), 0644); err != nil {
307327
t.Fatal(err)
308328
}
309329

@@ -314,9 +334,9 @@ components:
314334
t.Fatalf("Failed to load workspace: %v", err)
315335
}
316336

317-
pkg, ok := workspace.Packages[":app"]
337+
pkg, ok := workspace.Packages["app:docker"]
318338
if !ok {
319-
t.Fatal("Package :app not found in workspace")
339+
t.Fatal("Package app:docker not found in workspace")
320340
}
321341

322342
cacheDir := filepath.Join(tmpDir, ".cache")

0 commit comments

Comments
 (0)