1717package container
1818
1919import (
20+ "encoding/json"
2021 "fmt"
2122 "os"
2223 "os/exec"
@@ -29,6 +30,7 @@ import (
2930
3031 "github.com/containerd/nerdctl/mod/tigron/expect"
3132 "github.com/containerd/nerdctl/mod/tigron/test"
33+ "github.com/containerd/nerdctl/mod/tigron/tig"
3234
3335 "github.com/containerd/nerdctl/v2/pkg/infoutil"
3436 "github.com/containerd/nerdctl/v2/pkg/inspecttypes/dockercompat"
@@ -185,6 +187,35 @@ func TestContainerInspectContainsInternalLabel(t *testing.T) {
185187 assert .Equal (base .T , expectedLabelMount , labelMount )
186188}
187189
190+ func TestContainerInspectConfigImage (t * testing.T ) {
191+ nerdtest .Setup ()
192+
193+ testCase := & test.Case {
194+ Description : "Container inspect contains Config.Image field" ,
195+ Setup : func (data test.Data , helpers test.Helpers ) {
196+ helpers .Ensure ("run" , "-d" , "--name" , data .Identifier (), testutil .AlpineImage , "sleep" , "infinity" )
197+ },
198+ Cleanup : func (data test.Data , helpers test.Helpers ) {
199+ helpers .Anyhow ("rm" , "-f" , data .Identifier ())
200+ },
201+ Command : func (data test.Data , helpers test.Helpers ) test.TestableCommand {
202+ return helpers .Command ("inspect" , data .Identifier ())
203+ },
204+ Expected : test .Expects (0 , nil , func (stdout string , t tig.T ) {
205+ var containers []dockercompat.Container
206+ err := json .Unmarshal ([]byte (stdout ), & containers )
207+ assert .NilError (t , err , "Unable to unmarshal output\n " )
208+ assert .Equal (t , 1 , len (containers ), "Expected exactly one container in inspect output" )
209+
210+ container := containers [0 ]
211+ assert .Assert (t , container .Config != nil , "container Config should not be nil" )
212+ assert .Assert (t , container .Config .Image != "" , "Config.Image should not be empty" )
213+ }),
214+ }
215+
216+ testCase .Run (t )
217+ }
218+
188219func TestContainerInspectState (t * testing.T ) {
189220 t .Parallel ()
190221 testContainer := testutil .Identifier (t )
0 commit comments