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  }