From 82a77f9bb504221f263a0c81b197b9342bf80b74 Mon Sep 17 00:00:00 2001 From: Radek Simko Date: Mon, 5 Nov 2018 12:16:11 +0000 Subject: [PATCH] helper/schema: Add test for invalid timeout value --- helper/schema/provider_test.go | 46 ++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/helper/schema/provider_test.go b/helper/schema/provider_test.go index 39d16acbd2..bebe1f19b7 100644 --- a/helper/schema/provider_test.go +++ b/helper/schema/provider_test.go @@ -326,6 +326,52 @@ func TestProviderDiff_timeoutInvalidType(t *testing.T) { } } +func TestProviderDiff_timeoutInvalidValue(t *testing.T) { + p := &Provider{ + ResourcesMap: map[string]*Resource{ + "blah": &Resource{ + Schema: map[string]*Schema{ + "foo": { + Type: TypeInt, + Optional: true, + }, + }, + Timeouts: &ResourceTimeout{ + Create: DefaultTimeout(10 * time.Minute), + }, + }, + }, + } + + invalidCfg := map[string]interface{}{ + "foo": 42, + "timeouts": map[string]interface{}{ + "create": "invalid", + }, + } + ic, err := config.NewRawConfig(invalidCfg) + if err != nil { + t.Fatalf("err: %s", err) + } + + _, err = p.Diff( + &terraform.InstanceInfo{ + Type: "blah", + }, + nil, + terraform.NewResourceConfig(ic), + ) + if err == nil { + t.Fatal("Expected provider.Diff to fail with invalid timeout value") + } + expectedErrMsg := "time: invalid duration invalid" + if !strings.Contains(err.Error(), expectedErrMsg) { + t.Fatalf("Unexpected error message: %q\nExpected message to contain %q", + err.Error(), + expectedErrMsg) + } +} + func TestProviderValidateResource(t *testing.T) { cases := []struct { P *Provider