44 "bufio"
55 "fmt"
66 "path/filepath"
7+ "regexp"
78 "strings"
89 "testing"
910
@@ -21,16 +22,20 @@ func insertBundles(t *testing.T, cmd icmd.Cmd, info dindSwarmAndRegistryInfo) {
2122 icmd .RunCmd (cmd ).Assert (t , icmd .Success )
2223}
2324
25+ func assertImageListOutput (t * testing.T , cmd icmd.Cmd , expected string ) {
26+ result := icmd .RunCmd (cmd ).Assert (t , icmd .Success )
27+ match , _ := regexp .MatchString (expected , result .Stdout ())
28+ assert .Assert (t , match )
29+ }
30+
2431func expectImageListOutput (t * testing.T , cmd icmd.Cmd , output string ) {
2532 cmd .Command = dockerCli .Command ("app" , "image" , "ls" )
26- result := icmd .RunCmd (cmd ).Assert (t , icmd .Success )
27- assert .Equal (t , result .Stdout (), output )
33+ assertImageListOutput (t , cmd , output )
2834}
2935
3036func expectImageListDigestsOutput (t * testing.T , cmd icmd.Cmd , output string ) {
3137 cmd .Command = dockerCli .Command ("app" , "image" , "ls" , "--digests" )
32- result := icmd .RunCmd (cmd ).Assert (t , icmd .Success )
33- assert .Equal (t , result .Stdout (), output )
38+ assertImageListOutput (t , cmd , output )
3439}
3540
3641func verifyImageIDListOutput (t * testing.T , cmd icmd.Cmd , count int , distinct int ) {
@@ -56,12 +61,12 @@ func TestImageList(t *testing.T) {
5661
5762 insertBundles (t , cmd , info )
5863
59- expected := `APP IMAGE APP NAME
60- %s push-pull
61- a-simple-app:latest simple
62- b-simple-app:latest simple
64+ expected := `REPOSITORY TAG APP IMAGE ID APP NAME
65+ %s latest [a-f0-9]{12} push-pull
66+ a-simple-app latest [a-f0-9]{12} simple
67+ b-simple-app latest [a-f0-9]{12} simple
6368`
64- expectedOutput := fmt .Sprintf (expected , info .registryAddress + "/c-myapp:latest " )
69+ expectedOutput := fmt .Sprintf (expected , info .registryAddress + "/c-myapp" )
6570 expectImageListOutput (t , cmd , expectedOutput )
6671 })
6772}
@@ -78,12 +83,12 @@ func TestImageListDigests(t *testing.T) {
7883 runWithDindSwarmAndRegistry (t , func (info dindSwarmAndRegistryInfo ) {
7984 cmd := info .configuredCmd
8085 insertBundles (t , cmd , info )
81- expected := `APP IMAGE DIGEST APP NAME
82- %s <none> push-pull
83- a-simple-app:latest <none> simple
84- b-simple-app:latest <none> simple
86+ expected := `REPOSITORY TAG DIGEST APP IMAGE ID APP NAME
87+ %s latest <none> [a-f0-9]{12} push-pull
88+ a-simple-app latest <none> [a-f0-9]{12} simple
89+ b-simple-app latest <none> [a-f0-9]{12} simple
8590`
86- expectedOutput := fmt .Sprintf (expected , info .registryAddress + "/c-myapp:latest " )
91+ expectedOutput := fmt .Sprintf (expected , info .registryAddress + "/c-myapp" )
8792 expectImageListDigestsOutput (t , cmd , expectedOutput )
8893 })
8994}
@@ -113,7 +118,7 @@ Deleted: b-simple-app:latest`,
113118 Err : `b-simple-app:latest: reference not found` ,
114119 })
115120
116- expectedOutput := "APP IMAGE APP NAME\n "
121+ expectedOutput := "REPOSITORY TAG APP IMAGE ID APP NAME\n "
117122 expectImageListOutput (t , cmd , expectedOutput )
118123 })
119124}
@@ -131,8 +136,8 @@ func TestImageTag(t *testing.T) {
131136 cmd .Command = dockerCli .Command ("app" , "build" , "--tag" , "a-simple-app" , filepath .Join ("testdata" , "simple" ))
132137 icmd .RunCmd (cmd ).Assert (t , icmd .Success )
133138
134- singleImageExpectation := `APP IMAGE APP NAME
135- a-simple-app: latest simple
139+ singleImageExpectation := `REPOSITORY TAG APP IMAGE ID APP NAME
140+ a-simple-app latest [a-f0-9]{12} simple
136141`
137142 expectImageListOutput (t , cmd , singleImageExpectation )
138143
@@ -181,63 +186,63 @@ a-simple-app:latest simple
181186 // tag image with only names
182187 dockerAppImageTag ("a-simple-app" , "b-simple-app" )
183188 icmd .RunCmd (cmd ).Assert (t , icmd .Success )
184- expectImageListOutput (t , cmd , `APP IMAGE APP NAME
185- a-simple-app: latest simple
186- b-simple-app: latest simple
189+ expectImageListOutput (t , cmd , `REPOSITORY TAG APP IMAGE ID APP NAME
190+ a-simple-app latest [a-f0-9]{12} simple
191+ b-simple-app latest [a-f0-9]{12} simple
187192` )
188193
189194 // target tag
190195 dockerAppImageTag ("a-simple-app" , "a-simple-app:0.1" )
191196 icmd .RunCmd (cmd ).Assert (t , icmd .Success )
192- expectImageListOutput (t , cmd , `APP IMAGE APP NAME
193- a-simple-app: 0.1 simple
194- a-simple-app: latest simple
195- b-simple-app: latest simple
197+ expectImageListOutput (t , cmd , `REPOSITORY TAG APP IMAGE ID APP NAME
198+ a-simple-app 0.1 [a-f0-9]{12} simple
199+ a-simple-app latest [a-f0-9]{12} simple
200+ b-simple-app latest [a-f0-9]{12} simple
196201` )
197202
198203 // source tag
199204 dockerAppImageTag ("a-simple-app:0.1" , "c-simple-app" )
200205 icmd .RunCmd (cmd ).Assert (t , icmd .Success )
201- expectImageListOutput (t , cmd , `APP IMAGE APP NAME
202- a-simple-app: 0.1 simple
203- a-simple-app: latest simple
204- b-simple-app: latest simple
205- c-simple-app: latest simple
206+ expectImageListOutput (t , cmd , `REPOSITORY TAG APP IMAGE ID APP NAME
207+ a-simple-app 0.1 [a-f0-9]{12} simple
208+ a-simple-app latest [a-f0-9]{12} simple
209+ b-simple-app latest [a-f0-9]{12} simple
210+ c-simple-app latest [a-f0-9]{12} simple
206211` )
207212
208213 // source and target tags
209214 dockerAppImageTag ("a-simple-app:0.1" , "b-simple-app:0.2" )
210215 icmd .RunCmd (cmd ).Assert (t , icmd .Success )
211- expectImageListOutput (t , cmd , `APP IMAGE APP NAME
212- a-simple-app: 0.1 simple
213- a-simple-app: latest simple
214- b-simple-app: 0.2 simple
215- b-simple-app: latest simple
216- c-simple-app: latest simple
216+ expectImageListOutput (t , cmd , `REPOSITORY TAG APP IMAGE ID APP NAME
217+ a-simple-app 0.1 [a-f0-9]{12} simple
218+ a-simple-app latest [a-f0-9]{12} simple
219+ b-simple-app 0.2 [a-f0-9]{12} simple
220+ b-simple-app latest [a-f0-9]{12} simple
221+ c-simple-app latest [a-f0-9]{12} simple
217222` )
218223
219224 // given a new application
220225 cmd .Command = dockerCli .Command ("app" , "build" , "--tag" , "push-pull" , filepath .Join ("testdata" , "push-pull" ))
221226 icmd .RunCmd (cmd ).Assert (t , icmd .Success )
222- expectImageListOutput (t , cmd , `APP IMAGE APP NAME
223- a-simple-app: 0.1 simple
224- a-simple-app: latest simple
225- b-simple-app: 0.2 simple
226- b-simple-app: latest simple
227- c-simple-app: latest simple
228- push-pull:latest push-pull
227+ expectImageListOutput (t , cmd , `REPOSITORY TAG APP IMAGE ID APP NAME
228+ a-simple-app 0.1 [a-f0-9]{12} simple
229+ a-simple-app latest [a-f0-9]{12} simple
230+ b-simple-app 0.2 [a-f0-9]{12} simple
231+ b-simple-app latest [a-f0-9]{12} simple
232+ c-simple-app latest [a-f0-9]{12} simple
233+ push-pull latest [a-f0-9]{12} push-pull
229234` )
230235
231236 // can be tagged to an existing tag
232237 dockerAppImageTag ("push-pull" , "b-simple-app:0.2" )
233238 icmd .RunCmd (cmd ).Assert (t , icmd .Success )
234- expectImageListOutput (t , cmd , `APP IMAGE APP NAME
235- a-simple-app: 0.1 simple
236- a-simple-app: latest simple
237- b-simple-app: 0.2 push-pull
238- b-simple-app: latest simple
239- c-simple-app: latest simple
240- push-pull:latest push-pull
239+ expectImageListOutput (t , cmd , `REPOSITORY TAG APP IMAGE ID APP NAME
240+ a-simple-app 0.1 [a-f0-9]{12} simple
241+ a-simple-app latest [a-f0-9]{12} simple
242+ b-simple-app 0.2 [a-f0-9]{12} push-pull
243+ b-simple-app latest [a-f0-9]{12} simple
244+ c-simple-app latest [a-f0-9]{12} simple
245+ push-pull latest [a-f0-9]{12} push-pull
241246` )
242247 })
243248}
0 commit comments