@@ -50,32 +50,15 @@ func Test_CreateContainer(t *testing.T) {
5050	}))
5151}
5252
53- func  createContainer (metaKey  string ) core.BeforeFunc  {
54- 	return  core .ExecStoreBeforeCmd (metaKey , fmt .Sprintf (
55- 		"scw container container create namespace-id={{ .Namespace.ID }} name=%s deploy=true -w" ,
56- 		core .GetRandomName ("test" )))
57- }
58- 
59- func  createContainerWithImage (metaKey  string , registryImageMetaKey  string ) core.BeforeFunc  {
60- 	return  core .ExecStoreBeforeCmd (metaKey , fmt .Sprintf (
61- 		"scw container container create namespace-id={{ .ContainerNamespace.ID }} name=%s registry-image={{ (index .%s 0).FullName }}:latest port=80 deploy=true -w" ,
62- 		core .GetRandomName ("test" ),
63- 		registryImageMetaKey ,
64- 	))
65- }
66- 
67- func  deleteRegistryNamespace (metaKey  string ) core.AfterFunc  {
68- 	return  func (ctx  * core.AfterFuncCtx ) error  {
69- 		return  core .ExecAfterCmd ("scw registry namespace delete {{ ."  +  metaKey  +  ".ID }}" )(ctx )
70- 	}
71- }
72- 
7353func  Test_UpdateContainer (t  * testing.T ) {
7454	t .Run ("Simple" , core .Test (& core.TestConfig {
7555		Commands : container .GetCommands (),
7656		BeforeFunc : core .BeforeFuncCombine (
7757			createNamespace ("Namespace" ),
78- 			createContainer ("Container" ),
58+ 			core .ExecStoreBeforeCmd ("Container" , fmt .Sprintf (
59+ 				"scw container container create namespace-id={{ .Namespace.ID }} name=%s deploy=true -w" ,
60+ 				core .GetRandomName ("test" ),
61+ 			)),
7962		),
8063		Cmd : "scw container container update {{ .Container.ID }} tags.0=new_tag port=80 cpu-limit=1500" ,
8164		Check : core .TestCheckCombine (
@@ -94,69 +77,82 @@ func Test_UpdateContainer(t *testing.T) {
9477		),
9578	}))
9679
80+ 	lighttpdImage  :=  "sebp/lighttpd:latest" 
81+ 	nginxImage  :=  "nginx:1.29.2-alpine" 
82+ 	lighttpdImageMetaKey  :=  "LighttpdImage" 
83+ 	nginxImageMetaKey  :=  "NginxImage" 
84+ 	registryNamespaceMetaKey  :=  "RegistryNamespace" 
85+ 	containerNamespaceMetaKey  :=  "ContainerNamespace" 
86+ 	containerMetaKey  :=  "Container" 
87+ 
9788	t .Run ("RegistryImage" , core .Test (& core.TestConfig {
9889		Commands : core .NewCommandsMerge (
9990			container .GetCommands (),
10091			registry .GetCommands (),
10192		),
10293		BeforeFunc : core .BeforeFuncCombine (
10394			core .ExecStoreBeforeCmd (
104- 				"RegistryNamespace" ,
95+ 				registryNamespaceMetaKey ,
10596				fmt .Sprintf ("scw registry namespace create name=%s is-public=false" ,
10697					core .GetRandomName ("test-ctn-update-rg-img" ),
10798				),
10899			),
109100			core .BeforeFuncWhenUpdatingCassette (
110101				core .BeforeFuncCombine (
111102					core .ExecBeforeCmd ("scw registry login" ),
112- 					testhelpers .PushRegistryImage (
113- 						"nginx:1.28.0-alpine" ,
114- 						"RegistryNamespace" ,
115- 						"nginx-1-28-0-alpine" ,
116- 					),
117- 					testhelpers .PushRegistryImage (
118- 						"nginx:1.29.2-alpine" ,
119- 						"RegistryNamespace" ,
120- 						"nginx-1-29-2-alpine" ,
121- 					),
103+ 					testhelpers .PushRegistryImage (lighttpdImage , registryNamespaceMetaKey ),
104+ 					testhelpers .PushRegistryImage (nginxImage , registryNamespaceMetaKey ),
122105				),
123106			),
124- 			core .BeforeFuncCombine (
125- 				testhelpers .StoreImageInMeta (
126- 					"RegistryImageNginx28" ,
127- 					"RegistryNamespace" ,
128- 					"nginx-1-28-0-alpine" ,
129- 				),
130- 				testhelpers .StoreImageInMeta (
131- 					"RegistryImageNginx29" ,
132- 					"RegistryNamespace" ,
133- 					"nginx-1-29-2-alpine" ,
134- 				),
107+ 			testhelpers .StoreImageIdentifierInMeta (
108+ 				registryNamespaceMetaKey ,
109+ 				lighttpdImage ,
110+ 				lighttpdImageMetaKey ,
111+ 			),
112+ 			testhelpers .StoreImageIdentifierInMeta (
113+ 				registryNamespaceMetaKey ,
114+ 				nginxImage ,
115+ 				nginxImageMetaKey ,
135116			),
136- 			createNamespace ("ContainerNamespace" ),
137- 			createContainerWithImage ("Container" , "RegistryImageNginx28" ),
117+ 			createNamespace (containerNamespaceMetaKey ),
118+ 			core .ExecStoreBeforeCmd (containerMetaKey , fmt .Sprintf (
119+ 				"scw container container create namespace-id={{ .%s.ID }} name=%s registry-image={{ .%s }} port=80 deploy=true -w" ,
120+ 				containerNamespaceMetaKey ,
121+ 				core .GetRandomName ("test" ),
122+ 				lighttpdImageMetaKey ,
123+ 			)),
124+ 			// NB: after this step, the container with the sebp/lighttpd image will deploy but stay in error state because it has no content to serve 
125+ 		),
126+ 		Cmd : fmt .Sprintf (
127+ 			"scw container container update {{ .%s.ID }} registry-image={{ .%s }} port=80 redeploy=true -w" ,
128+ 			containerMetaKey ,
129+ 			nginxImageMetaKey ,
138130		),
139- 		Cmd : "scw container container update {{ .Container.ID }} registry-image={{ (index .RegistryImageNginx29 0).FullName }}:latest port=80 redeploy=true -w" ,
140131		Check : core .TestCheckCombine (
141132			func (t  * testing.T , ctx  * core.CheckFuncCtx ) {
142133				t .Helper ()
143134				c  :=  ctx .Result .(* containerSDK.Container )
144- 
145135				// Check image 
146- 				expectedImageName  :=  ctx .Meta .Render (
147- 					"{{ (index .RegistryImageNginx29 0).FullName }}:latest" ,
148- 				)
136+ 				expectedImageName  :=  ctx .Meta .Render (fmt .Sprintf ("{{ .%s }}" , nginxImageMetaKey ))
149137				assert .Equal (t , expectedImageName , c .RegistryImage )
150- 
151138				// Check status 
152139				assert .Equal (t , containerSDK .ContainerStatusReady , c .Status )
153140			},
154141			core .TestCheckExitCode (0 ),
155142			core .TestCheckGolden (),
156143		),
157144		AfterFunc : core .AfterFuncCombine (
158- 			deleteNamespace ("ContainerNamespace" ),
159- 			deleteRegistryNamespace ("RegistryNamespace" ),
145+ 			deleteNamespace (containerNamespaceMetaKey ),
146+ 			func (ctx  * core.AfterFuncCtx ) error  {
147+ 				return  core .ExecAfterCmd (
148+ 					fmt .Sprintf (
149+ 						"scw registry namespace delete {{ .%s.ID }}" ,
150+ 						registryNamespaceMetaKey ,
151+ 					),
152+ 				)(
153+ 					ctx ,
154+ 				)
155+ 			},
160156		),
161157	}))
162158}
0 commit comments