diff --git a/internal/stacks/stackruntime/internal/stackeval/local_value_test.go b/internal/stacks/stackruntime/internal/stackeval/local_value_test.go index 123a9b383c..475768a6f5 100644 --- a/internal/stacks/stackruntime/internal/stackeval/local_value_test.go +++ b/internal/stacks/stackruntime/internal/stackeval/local_value_test.go @@ -24,10 +24,36 @@ func TestLocalValueValue(t *testing.T) { LocalName: "name", WantVal: cty.StringVal("jackson"), }, - // "childName": { - // LocalName: "childName", - // WantVal: cty.StringVal("foo"), - // }, + "childName": { + LocalName: "childName", + WantVal: cty.StringVal("outputted-child of jackson"), + }, + "functional": { + LocalName: "functional", + WantVal: cty.StringVal("Hello, Ander!"), + }, + "mappy": { + LocalName: "mappy", + WantVal: cty.ObjectVal(map[string]cty.Value{ + "name": cty.StringVal("jackson"), + "age": cty.NumberIntVal(30), + }), + }, + "listy": { + LocalName: "listy", + WantVal: cty.TupleVal([]cty.Value{ + cty.StringVal("jackson"), + cty.NumberIntVal(30), + }), + }, + "booleany": { + LocalName: "booleany", + WantVal: cty.BoolVal(true), + }, + "conditiony": { + LocalName: "conditiony", + WantVal: cty.StringVal("true"), + }, } for name, test := range tests { @@ -45,7 +71,7 @@ func TestLocalValueValue(t *testing.T) { t.Errorf("unexpected errors\n%s", diags.Err().Error()) } - if got != test.WantVal { + if got.Equals(test.WantVal).False() { t.Errorf("got %s, want %s", got, test.WantVal) } diff --git a/internal/stacks/stackruntime/internal/stackeval/planning_test.go b/internal/stacks/stackruntime/internal/stackeval/planning_test.go index ff9b04d798..3e1af3350f 100644 --- a/internal/stacks/stackruntime/internal/stackeval/planning_test.go +++ b/internal/stacks/stackruntime/internal/stackeval/planning_test.go @@ -941,7 +941,7 @@ func TestPlanning_Locals(t *testing.T) { }) inPromisingTask(t, func(ctx context.Context, t *testing.T) { - plan, diags := testPlan(t, main) + _, diags := testPlan(t, main) if diags.HasErrors() { t.Fatalf("errors encountered\n%s", spew.Sdump(diags.ForRPC())) } diff --git a/internal/stacks/stackruntime/internal/stackeval/testdata/sourcebundle/local_value/basics/local-value-basics.tfstack.hcl b/internal/stacks/stackruntime/internal/stackeval/testdata/sourcebundle/local_value/basics/local-value-basics.tfstack.hcl index fe9728e578..6dcff9b065 100644 --- a/internal/stacks/stackruntime/internal/stackeval/testdata/sourcebundle/local_value/basics/local-value-basics.tfstack.hcl +++ b/internal/stacks/stackruntime/internal/stackeval/testdata/sourcebundle/local_value/basics/local-value-basics.tfstack.hcl @@ -2,6 +2,15 @@ locals { name = "jackson" childName = stack.child.outputted_name + functional = format("Hello, %s!", "Ander") + mappy = { + name = "jackson", + age = 30 + } + + listy = ["jackson", 30] + booleany = true + conditiony = local.booleany == true ? "true" : "false" } stack "child" {