@@ -2,7 +2,6 @@ package api
22
33import (
44 "fmt"
5- "strings"
65 "testing"
76 "time"
87
@@ -42,8 +41,8 @@ func TestCreateImage_Async(t *testing.T) {
4241 // Create images before alpine to populate the queue
4342 t .Log ("Creating image queue..." )
4443 queueImages := []string {
45- "docker.io/library/busybox:latest" ,
46- "docker.io/library/nginx:alpine" ,
44+ apiTestImageRef ( t , "docker.io/library/busybox:latest" ) ,
45+ apiTestImageRef ( t , "docker.io/library/nginx:alpine" ) ,
4746 }
4847 for _ , name := range queueImages {
4948 _ , err := svc .CreateImage (ctx , oapi.CreateImageRequestObject {
@@ -54,9 +53,10 @@ func TestCreateImage_Async(t *testing.T) {
5453
5554 // Create alpine (should be last in queue)
5655 t .Log ("Creating alpine image (should be queued)..." )
56+ alpineName := apiTestImageRef (t , "docker.io/library/alpine:latest" )
5757 createResp , err := svc .CreateImage (ctx , oapi.CreateImageRequestObject {
5858 Body : & oapi.CreateImageRequest {
59- Name : "docker.io/library/alpine:latest" ,
59+ Name : alpineName ,
6060 },
6161 })
6262 require .NoError (t , err )
@@ -65,14 +65,16 @@ func TestCreateImage_Async(t *testing.T) {
6565 require .True (t , ok , "expected 202 accepted response" )
6666
6767 img := oapi .Image (acceptedResp )
68- require .Equal (t , "docker.io/library/alpine:latest" , img .Name )
68+ require .Equal (t , alpineName , img .Name )
6969 require .NotEmpty (t , img .Digest , "digest should be populated immediately" )
7070 t .Logf ("Image created: name=%s, digest=%s, initial_status=%s, queue_position=%v" ,
7171 img .Name , img .Digest , img .Status , img .QueuePosition )
7272
7373 // Construct digest reference for polling: repository@digest
7474 // GetImage expects format like "docker.io/library/alpine@sha256:..."
75- digestRef := "docker.io/library/alpine@" + img .Digest
75+ alpineRef , err := images .ParseNormalizedRef (alpineName )
76+ require .NoError (t , err )
77+ digestRef := alpineRef .Repository () + "@" + img .Digest
7678 t .Logf ("Polling with digest reference: %s" , digestRef )
7779
7880 // Poll until ready using digest (tag symlink doesn't exist until status=ready)
@@ -135,7 +137,7 @@ func TestCreateImage_InvalidTag(t *testing.T) {
135137 t .Log ("Creating image with invalid tag..." )
136138 createResp , err := svc .CreateImage (ctx , oapi.CreateImageRequestObject {
137139 Body : & oapi.CreateImageRequest {
138- Name : "docker.io/library/busybox:foobar" ,
140+ Name : apiTestImageRef ( t , "docker.io/library/busybox:foobar" ) ,
139141 },
140142 })
141143 require .NoError (t , err )
@@ -181,13 +183,13 @@ func TestCreateImage_Idempotent(t *testing.T) {
181183 ctx := ctx ()
182184
183185 // Create first image to occupy queue position 0
184- t .Log ("Creating first image (busybox ) to occupy queue..." )
186+ t .Log ("Creating first image (nginx ) to occupy queue..." )
185187 _ , err := svc .CreateImage (ctx , oapi.CreateImageRequestObject {
186- Body : & oapi.CreateImageRequest {Name : "docker.io/library/busybox:latest" },
188+ Body : & oapi.CreateImageRequest {Name : apiTestImageRef ( t , "docker.io/library/nginx:alpine" ) },
187189 })
188190 require .NoError (t , err )
189191
190- imageName := "docker.io/library/alpine:3.18"
192+ imageName := apiTestImageRef ( t , "docker.io/library/alpine:latest" )
191193
192194 // First call - should create and queue at position 1
193195 t .Log ("First CreateImage call (alpine)..." )
@@ -245,9 +247,9 @@ func TestCreateImage_Idempotent(t *testing.T) {
245247 }
246248
247249 // Construct digest reference: repository@digest
248- // Extract repository from imageName (strip tag part )
249- repository := strings . Split ( imageName , ":" )[ 0 ]
250- digestRef := repository + "@" + img1 .Digest
250+ imageRef , err := images . ParseNormalizedRef ( imageName )
251+ require . NoError ( t , err )
252+ digestRef := imageRef . Repository () + "@" + img1 .Digest
251253 t .Logf ("Polling with digest reference: %s" , digestRef )
252254
253255 // Wait for build to complete - poll by digest (tag symlink doesn't exist until status=ready)
0 commit comments