@@ -161,27 +161,56 @@ func TestAccDigitalOceanApp_Envs(t *testing.T) {
161161
162162 oneEnv := `
163163 env {
164- key = "FOO "
164+ key = "COMPONENT_FOO "
165165 value = "bar"
166166 }
167167`
168168
169169 twoEnvs := `
170170 env {
171- key = "FOO "
171+ key = "COMPONENT_FOO "
172172 value = "bar"
173173 }
174174
175175 env {
176- key = "FIZZ "
176+ key = "COMPONENT_FIZZ "
177177 value = "pop"
178178 scope = "BUILD_TIME"
179179 }
180180`
181181
182182 oneEnvUpdated := `
183183 env {
184- key = "FOO"
184+ key = "COMPONENT_FOO"
185+ value = "baz"
186+ scope = "RUN_TIME"
187+ type = "GENERAL"
188+ }
189+ `
190+
191+ oneAppEnv := `
192+ env {
193+ key = "APP_FOO"
194+ value = "bar"
195+ }
196+ `
197+
198+ twoAppEnvs := `
199+ env {
200+ key = "APP_FOO"
201+ value = "bar"
202+ }
203+
204+ env {
205+ key = "APP_FIZZ"
206+ value = "pop"
207+ scope = "BUILD_TIME"
208+ }
209+ `
210+
211+ oneAppEnvUpdated := `
212+ env {
213+ key = "APP_FOO"
185214 value = "baz"
186215 scope = "RUN_TIME"
187216 type = "GENERAL"
@@ -194,7 +223,7 @@ func TestAccDigitalOceanApp_Envs(t *testing.T) {
194223 CheckDestroy : testAccCheckDigitalOceanAppDestroy ,
195224 Steps : []resource.TestStep {
196225 {
197- Config : fmt .Sprintf (testAccCheckDigitalOceanAppConfig_Envs , appName , oneEnv ),
226+ Config : fmt .Sprintf (testAccCheckDigitalOceanAppConfig_Envs , appName , oneEnv , oneAppEnv ),
198227 Check : resource .ComposeTestCheckFunc (
199228 testAccCheckDigitalOceanAppExists ("digitalocean_app.foobar" , & app ),
200229 resource .TestCheckResourceAttr (
@@ -205,15 +234,26 @@ func TestAccDigitalOceanApp_Envs(t *testing.T) {
205234 "digitalocean_app.foobar" ,
206235 "spec.0.service.0.env.*" ,
207236 map [string ]string {
208- "key" : "FOO" ,
237+ "key" : "COMPONENT_FOO" ,
238+ "value" : "bar" ,
239+ "scope" : "RUN_AND_BUILD_TIME" ,
240+ },
241+ ),
242+ resource .TestCheckResourceAttr (
243+ "digitalocean_app.foobar" , "spec.0.env.#" , "1" ),
244+ setutil .TestCheckTypeSetElemNestedAttrs (
245+ "digitalocean_app.foobar" ,
246+ "spec.0.env.*" ,
247+ map [string ]string {
248+ "key" : "APP_FOO" ,
209249 "value" : "bar" ,
210250 "scope" : "RUN_AND_BUILD_TIME" ,
211251 },
212252 ),
213253 ),
214254 },
215255 {
216- Config : fmt .Sprintf (testAccCheckDigitalOceanAppConfig_Envs , appName , twoEnvs ),
256+ Config : fmt .Sprintf (testAccCheckDigitalOceanAppConfig_Envs , appName , twoEnvs , twoAppEnvs ),
217257 Check : resource .ComposeTestCheckFunc (
218258 testAccCheckDigitalOceanAppExists ("digitalocean_app.foobar" , & app ),
219259 resource .TestCheckResourceAttr (
@@ -224,7 +264,7 @@ func TestAccDigitalOceanApp_Envs(t *testing.T) {
224264 "digitalocean_app.foobar" ,
225265 "spec.0.service.0.env.*" ,
226266 map [string ]string {
227- "key" : "FOO " ,
267+ "key" : "COMPONENT_FOO " ,
228268 "value" : "bar" ,
229269 "scope" : "RUN_AND_BUILD_TIME" ,
230270 },
@@ -233,15 +273,35 @@ func TestAccDigitalOceanApp_Envs(t *testing.T) {
233273 "digitalocean_app.foobar" ,
234274 "spec.0.service.0.env.*" ,
235275 map [string ]string {
236- "key" : "FIZZ" ,
276+ "key" : "COMPONENT_FIZZ" ,
277+ "value" : "pop" ,
278+ "scope" : "BUILD_TIME" ,
279+ },
280+ ),
281+ resource .TestCheckResourceAttr (
282+ "digitalocean_app.foobar" , "spec.0.env.#" , "2" ),
283+ setutil .TestCheckTypeSetElemNestedAttrs (
284+ "digitalocean_app.foobar" ,
285+ "spec.0.env.*" ,
286+ map [string ]string {
287+ "key" : "APP_FOO" ,
288+ "value" : "bar" ,
289+ "scope" : "RUN_AND_BUILD_TIME" ,
290+ },
291+ ),
292+ setutil .TestCheckTypeSetElemNestedAttrs (
293+ "digitalocean_app.foobar" ,
294+ "spec.0.env.*" ,
295+ map [string ]string {
296+ "key" : "APP_FIZZ" ,
237297 "value" : "pop" ,
238298 "scope" : "BUILD_TIME" ,
239299 },
240300 ),
241301 ),
242302 },
243303 {
244- Config : fmt .Sprintf (testAccCheckDigitalOceanAppConfig_Envs , appName , oneEnvUpdated ),
304+ Config : fmt .Sprintf (testAccCheckDigitalOceanAppConfig_Envs , appName , oneEnvUpdated , oneAppEnvUpdated ),
245305 Check : resource .ComposeTestCheckFunc (
246306 testAccCheckDigitalOceanAppExists ("digitalocean_app.foobar" , & app ),
247307 resource .TestCheckResourceAttr (
@@ -252,7 +312,18 @@ func TestAccDigitalOceanApp_Envs(t *testing.T) {
252312 "digitalocean_app.foobar" ,
253313 "spec.0.service.0.env.*" ,
254314 map [string ]string {
255- "key" : "FOO" ,
315+ "key" : "COMPONENT_FOO" ,
316+ "value" : "baz" ,
317+ "scope" : "RUN_TIME" ,
318+ },
319+ ),
320+ resource .TestCheckResourceAttr (
321+ "digitalocean_app.foobar" , "spec.0.env.#" , "1" ),
322+ setutil .TestCheckTypeSetElemNestedAttrs (
323+ "digitalocean_app.foobar" ,
324+ "spec.0.env.*" ,
325+ map [string ]string {
326+ "key" : "APP_FOO" ,
256327 "value" : "baz" ,
257328 "scope" : "RUN_TIME" ,
258329 },
@@ -487,6 +558,8 @@ resource "digitalocean_app" "foobar" {
487558
488559%s
489560 }
561+
562+ %s
490563 }
491564}`
492565
0 commit comments