github.com/jpreese/tflint@v0.19.2-0.20200908152133-b01686250fb6/rules/terraformrules/terraform_required_version_test.go (about) 1 package terraformrules 2 3 import ( 4 "testing" 5 6 "github.com/terraform-linters/tflint/tflint" 7 ) 8 9 func Test_TerraformRequiredVersionRule(t *testing.T) { 10 cases := []struct { 11 Name string 12 Content string 13 Expected tflint.Issues 14 }{ 15 { 16 Name: "no version", 17 Content: ` 18 terraform {} 19 `, 20 Expected: tflint.Issues{ 21 { 22 Rule: NewTerraformRequiredVersionRule(), 23 Message: "terraform \"required_version\" attribute is required", 24 }, 25 }, 26 }, 27 { 28 Name: "version exists", 29 Content: ` 30 terraform { 31 required_version = "~> 0.12" 32 } 33 `, 34 Expected: tflint.Issues{}, 35 }, 36 } 37 38 rule := NewTerraformRequiredVersionRule() 39 40 for _, tc := range cases { 41 runner := tflint.TestRunner(t, map[string]string{"module.tf": tc.Content}) 42 43 if err := rule.Check(runner); err != nil { 44 t.Fatalf("Unexpected error occurred: %s", err) 45 } 46 47 tflint.AssertIssues(t, tc.Expected, runner.Issues) 48 } 49 }