@@ -29,6 +29,11 @@ func TestLoadBasic(t *testing.T) {
2929 t .Fatalf ("bad:\n %s" , actual )
3030 }
3131
32+ actual = providerConfigsStr (c .ProviderConfigs )
33+ if actual != strings .TrimSpace (basicProvidersStr ) {
34+ t .Fatalf ("bad:\n %s" , actual )
35+ }
36+
3237 actual = resourcesStr (c .Resources )
3338 if actual != strings .TrimSpace (basicResourcesStr ) {
3439 t .Fatalf ("bad:\n %s" , actual )
@@ -50,12 +55,49 @@ func TestLoadBasic_import(t *testing.T) {
5055 t .Fatalf ("bad:\n %s" , actual )
5156 }
5257
58+ actual = providerConfigsStr (c .ProviderConfigs )
59+ if actual != strings .TrimSpace (importProvidersStr ) {
60+ t .Fatalf ("bad:\n %s" , actual )
61+ }
62+
5363 actual = resourcesStr (c .Resources )
5464 if actual != strings .TrimSpace (importResourcesStr ) {
5565 t .Fatalf ("bad:\n %s" , actual )
5666 }
5767}
5868
69+ // This helper turns a provider configs field into a deterministic
70+ // string value for comparison in tests.
71+ func providerConfigsStr (pcs map [string ]* ProviderConfig ) string {
72+ result := ""
73+ for n , pc := range pcs {
74+ result += fmt .Sprintf ("%s\n " , n )
75+
76+ for k , _ := range pc .Config {
77+ result += fmt .Sprintf (" %s\n " , k )
78+ }
79+
80+ if len (pc .Variables ) > 0 {
81+ result += fmt .Sprintf (" vars\n " )
82+ for _ , rawV := range pc .Variables {
83+ kind := "unknown"
84+ str := rawV .FullKey ()
85+
86+ switch rawV .(type ) {
87+ case * ResourceVariable :
88+ kind = "resource"
89+ case * UserVariable :
90+ kind = "user"
91+ }
92+
93+ result += fmt .Sprintf (" %s: %s\n " , kind , str )
94+ }
95+ }
96+ }
97+
98+ return strings .TrimSpace (result )
99+ }
100+
59101// This helper turns a resources field into a deterministic
60102// string value for comparison in tests.
61103func resourcesStr (rs []* Resource ) string {
@@ -113,6 +155,16 @@ func variablesStr(vs map[string]Variable) string {
113155 return strings .TrimSpace (result )
114156}
115157
158+ const basicProvidersStr = `
159+ aws
160+ access_key
161+ secret_key
162+ do
163+ api_key
164+ vars
165+ user: var.foo
166+ `
167+
116168const basicResourcesStr = `
117169aws_security_group[firewall]
118170aws_instance[web]
129181 bar
130182`
131183
184+ const importProvidersStr = `
185+ aws
186+ foo
187+ `
188+
132189const importResourcesStr = `
133190aws_security_group[db]
134191aws_security_group[web]
0 commit comments