github.com/mineiros-io/terradoc@v0.0.9-0.20220711062319-018bd4ae81f5/internal/entities/type_test.go (about)

     1  package entities_test
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/madlambda/spells/assert"
     7  	"github.com/mineiros-io/terradoc/internal/entities"
     8  	"github.com/mineiros-io/terradoc/internal/types"
     9  )
    10  
    11  func TestTypeAsString(t *testing.T) {
    12  	tests := []struct {
    13  		desc       string
    14  		ty         entities.Type
    15  		wantString string
    16  	}{
    17  		{
    18  			ty: entities.Type{
    19  				TFType: types.TerraformList,
    20  				Nested: &entities.Type{
    21  					TFType: types.TerraformNumber,
    22  				},
    23  			},
    24  			wantString: "list(number)",
    25  		},
    26  		{
    27  			ty: entities.Type{
    28  				TFType: types.TerraformString,
    29  			},
    30  			wantString: "string",
    31  		},
    32  		{
    33  			ty: entities.Type{
    34  				TFType: types.TerraformNumber,
    35  			},
    36  			wantString: "number",
    37  		},
    38  		{
    39  			ty: entities.Type{
    40  				TFType: types.TerraformBool,
    41  			},
    42  			wantString: "bool",
    43  		},
    44  		{
    45  			ty: entities.Type{
    46  				TFType: types.TerraformObject,
    47  				Label:  "foo",
    48  			},
    49  			wantString: "object(foo)",
    50  		},
    51  	}
    52  
    53  	for _, tt := range tests {
    54  		t.Run(tt.desc, func(t *testing.T) {
    55  			assert.EqualStrings(t, tt.wantString, tt.ty.AsString())
    56  		})
    57  	}
    58  }