github.com/muratcelep/terraform@v1.1.0-beta2-not-internal-4/not-internal/terraform/update_state_hook_test.go (about) 1 package terraform 2 3 import ( 4 "testing" 5 6 "github.com/davecgh/go-spew/spew" 7 "github.com/zclconf/go-cty/cty" 8 9 "github.com/muratcelep/terraform/not-internal/addrs" 10 "github.com/muratcelep/terraform/not-internal/states" 11 ) 12 13 func TestUpdateStateHook(t *testing.T) { 14 mockHook := new(MockHook) 15 16 state := states.NewState() 17 state.Module(addrs.RootModuleInstance).SetLocalValue("foo", cty.StringVal("hello")) 18 19 ctx := new(MockEvalContext) 20 ctx.HookHook = mockHook 21 ctx.StateState = state.SyncWrapper() 22 23 if err := updateStateHook(ctx); err != nil { 24 t.Fatalf("err: %s", err) 25 } 26 27 if !mockHook.PostStateUpdateCalled { 28 t.Fatal("should call PostStateUpdate") 29 } 30 if mockHook.PostStateUpdateState.LocalValue(addrs.LocalValue{Name: "foo"}.Absolute(addrs.RootModuleInstance)) != cty.StringVal("hello") { 31 t.Fatalf("wrong state passed to hook: %s", spew.Sdump(mockHook.PostStateUpdateState)) 32 } 33 }