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 }