@@ -11,6 +11,12 @@ import (
11
11
"github.com/terraform-linters/tflint-plugin-sdk/tflint"
12
12
)
13
13
14
+ func Test_satisfyRunnerInterface (t * testing.T ) {
15
+ var runner tflint.Runner
16
+ runner = TestRunner (t , map [string ]string {})
17
+ runner .EnsureNoError (nil , func () error { return nil })
18
+ }
19
+
14
20
func Test_WalkResourceAttributes (t * testing.T ) {
15
21
src := `
16
22
resource "aws_instance" "foo" {
@@ -309,6 +315,49 @@ func parseExpression(t *testing.T, src string, filename string, pos hcl.Pos) hcl
309
315
return expr
310
316
}
311
317
318
+ func Test_Backend (t * testing.T ) {
319
+ src := `
320
+ terraform {
321
+ backend "s3" {
322
+ bucket = "mybucket"
323
+ key = "path/to/my/key"
324
+ region = "us-east-1"
325
+ }
326
+ }`
327
+
328
+ runner := TestRunner (t , map [string ]string {"main.tf" : src })
329
+
330
+ backend , err := runner .Backend ()
331
+ if err != nil {
332
+ t .Fatal (err )
333
+ }
334
+
335
+ expected := & terraform.Backend {
336
+ Type : "s3" ,
337
+ TypeRange : hcl.Range {Filename : "main.tf" , Start : hcl.Pos {Line : 3 , Column : 11 }, End : hcl.Pos {Line : 3 , Column : 15 }},
338
+ Config : parseBody (
339
+ t ,
340
+ `bucket = "mybucket"
341
+ key = "path/to/my/key"
342
+ region = "us-east-1"` ,
343
+ "main.tf" ,
344
+ hcl.Pos {Line : 4 , Column : 5 },
345
+ hcl.Range {Filename : "main.tf" , Start : hcl.Pos {Line : 3 , Column : 16 }, End : hcl.Pos {Line : 7 , Column : 4 }},
346
+ hcl.Range {Filename : "main.tf" , Start : hcl.Pos {Line : 7 , Column : 4 }, End : hcl.Pos {Line : 7 , Column : 4 }},
347
+ ),
348
+ DeclRange : hcl.Range {Filename : "main.tf" , Start : hcl.Pos {Line : 3 , Column : 3 }, End : hcl.Pos {Line : 3 , Column : 15 }},
349
+ }
350
+
351
+ opts := cmp.Options {
352
+ cmpopts .IgnoreFields (hclsyntax.LiteralValueExpr {}, "Val" ),
353
+ cmpopts .IgnoreFields (hcl.Pos {}, "Byte" ),
354
+ cmpopts .IgnoreUnexported (hclsyntax.Body {}),
355
+ }
356
+ if ! cmp .Equal (expected , backend , opts ... ) {
357
+ t .Fatalf ("Diff: %s" , cmp .Diff (expected , backend , opts ... ))
358
+ }
359
+ }
360
+
312
361
func Test_EvaluateExpr (t * testing.T ) {
313
362
src := `
314
363
resource "aws_instance" "foo" {
0 commit comments