@@ -309,4 +309,63 @@ func TestApp(t *testing.T) {
309
309
}
310
310
})
311
311
312
+ t .Run ("CORS Behavior" , func (t * testing.T ) {
313
+ t .Parallel ()
314
+
315
+ baseConfig := `
316
+ provider "coder" {}
317
+ resource "coder_agent" "dev" {
318
+ os = "linux"
319
+ arch = "amd64"
320
+ }
321
+ resource "coder_app" "test" {
322
+ agent_id = coder_agent.dev.id
323
+ slug = "test"
324
+ display_name = "Testing"
325
+ url = "https://google.com"
326
+ external = true
327
+ %s
328
+ }`
329
+
330
+ cases := []struct {
331
+ name string
332
+ config string
333
+ behavior string
334
+ }{{
335
+ name : "Default CORS" ,
336
+ config : fmt .Sprintf (baseConfig , "" ),
337
+ behavior : "simple" ,
338
+ }, {
339
+ name : "Simple CORS" ,
340
+ config : fmt .Sprintf (baseConfig , "cors_behavior = \" simple\" " ),
341
+ behavior : "simple" ,
342
+ }, {
343
+ name : "Passthru CORS" ,
344
+ config : fmt .Sprintf (baseConfig , "cors_behavior = \" passthru\" " ),
345
+ behavior : "passthru" ,
346
+ }}
347
+ for _ , tc := range cases {
348
+ tc := tc
349
+ t .Run (tc .name , func (t * testing.T ) {
350
+ t .Parallel ()
351
+ resource .Test (t , resource.TestCase {
352
+ ProviderFactories : coderFactory (),
353
+ IsUnitTest : true ,
354
+ Steps : []resource.TestStep {{
355
+ Config : tc .config ,
356
+ Check : func (state * terraform.State ) error {
357
+ require .Len (t , state .Modules , 1 )
358
+ require .Len (t , state .Modules [0 ].Resources , 2 )
359
+ resource := state .Modules [0 ].Resources ["coder_app.test" ]
360
+ require .NotNil (t , resource )
361
+ require .Equal (t , tc .behavior , resource .Primary .Attributes ["cors_behavior" ])
362
+ return nil
363
+ },
364
+ ExpectError : nil ,
365
+ }},
366
+ })
367
+ })
368
+ }
369
+ })
370
+
312
371
}
0 commit comments