X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=statuscake%2Fresource_statuscaketest_test.go;h=71362f7d67aae42d9527cb90354961697bfb8f95;hb=6278bbb270b0a456466a876b991c67fa29c7b1e1;hp=f07fcc55a3c30c9d5c9bf680a6d2b48f5d2f2ddf;hpb=21252084ae8c5f3321b45008fd5a6b162b293407;p=github%2Ffretlink%2Fterraform-provider-statuscake.git diff --git a/statuscake/resource_statuscaketest_test.go b/statuscake/resource_statuscaketest_test.go index f07fcc5..71362f7 100644 --- a/statuscake/resource_statuscaketest_test.go +++ b/statuscake/resource_statuscaketest_test.go @@ -2,6 +2,7 @@ package statuscake import ( "fmt" + "os" "strconv" "testing" @@ -19,7 +20,26 @@ func TestAccStatusCake_basic(t *testing.T) { CheckDestroy: testAccTestCheckDestroy(&test), Steps: []resource.TestStep{ { - Config: testAccTestConfig_basic, + Config: interpolateTerraformTemplate(testAccTestConfig_basic), + Check: resource.ComposeTestCheckFunc( + testAccTestCheckExists("statuscake_test.google", &test), + testAccTestCheckAttributes("statuscake_test.google", &test), + ), + }, + }, + }) +} + +func TestAccStatusCake_basic_deprecated_contact_ID(t *testing.T) { + var test statuscake.Test + + resource.Test(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + CheckDestroy: testAccTestCheckDestroy(&test), + Steps: []resource.TestStep{ + { + Config: interpolateTerraformTemplate(testAccTestConfig_deprecated), Check: resource.ComposeTestCheckFunc( testAccTestCheckExists("statuscake_test.google", &test), testAccTestCheckAttributes("statuscake_test.google", &test), @@ -38,7 +58,7 @@ func TestAccStatusCake_tcp(t *testing.T) { CheckDestroy: testAccTestCheckDestroy(&test), Steps: []resource.TestStep{ { - Config: testAccTestConfig_tcp, + Config: interpolateTerraformTemplate(testAccTestConfig_tcp), Check: resource.ComposeTestCheckFunc( testAccTestCheckExists("statuscake_test.google", &test), testAccTestCheckAttributes("statuscake_test.google", &test), @@ -57,7 +77,7 @@ func TestAccStatusCake_withUpdate(t *testing.T) { CheckDestroy: testAccTestCheckDestroy(&test), Steps: []resource.TestStep{ { - Config: testAccTestConfig_basic, + Config: interpolateTerraformTemplate(testAccTestConfig_basic), Check: resource.ComposeTestCheckFunc( testAccTestCheckExists("statuscake_test.google", &test), ), @@ -71,9 +91,31 @@ func TestAccStatusCake_withUpdate(t *testing.T) { resource.TestCheckResourceAttr("statuscake_test.google", "check_rate", "500"), resource.TestCheckResourceAttr("statuscake_test.google", "paused", "true"), resource.TestCheckResourceAttr("statuscake_test.google", "timeout", "40"), - resource.TestCheckResourceAttr("statuscake_test.google", "contact_id", "0"), resource.TestCheckResourceAttr("statuscake_test.google", "confirmations", "0"), resource.TestCheckResourceAttr("statuscake_test.google", "trigger_rate", "20"), + resource.TestCheckResourceAttr("statuscake_test.google", "custom_header", "{ \"Content-Type\": \"application/x-www-form-urlencoded\" }"), + resource.TestCheckResourceAttr("statuscake_test.google", "user_agent", "string9988"), + resource.TestCheckResourceAttr("statuscake_test.google", "status", "Up"), + resource.TestCheckResourceAttr("statuscake_test.google", "uptime", "0"), + resource.TestCheckResourceAttr("statuscake_test.google", "node_locations.#", "3"), + resource.TestCheckResourceAttr("statuscake_test.google", "ping_url", "string8410"), + resource.TestCheckResourceAttr("statuscake_test.google", "basic_user", "string27052"), + resource.TestCheckResourceAttr("statuscake_test.google", "basic_pass", "string5659"), + resource.TestCheckResourceAttr("statuscake_test.google", "public", "0"), + resource.TestCheckResourceAttr("statuscake_test.google", "logo_image", "string21087"), + resource.TestCheckResourceAttr("statuscake_test.google", "branding", "25875"), + resource.TestCheckResourceAttr("statuscake_test.google", "website_host", "string32368"), + resource.TestCheckResourceAttr("statuscake_test.google", "virus", "1"), + resource.TestCheckResourceAttr("statuscake_test.google", "find_string", "string15212"), + resource.TestCheckResourceAttr("statuscake_test.google", "do_not_find", "false"), + resource.TestCheckResourceAttr("statuscake_test.google", "real_browser", "1"), + resource.TestCheckResourceAttr("statuscake_test.google", "test_tags.#", "1"), + resource.TestCheckResourceAttr("statuscake_test.google", "status_codes", "string23065"), + resource.TestCheckResourceAttr("statuscake_test.google", "use_jar", "1"), + resource.TestCheckResourceAttr("statuscake_test.google", "post_raw", "string32096"), + resource.TestCheckResourceAttr("statuscake_test.google", "final_endpoint", "string10781"), + resource.TestCheckResourceAttr("statuscake_test.google", "enable_ssl_alert", "false"), + resource.TestCheckResourceAttr("statuscake_test.google", "follow_redirect", "true"), ), }, }, @@ -136,14 +178,47 @@ func testAccTestCheckAttributes(rn string, test *statuscake.Test) resource.TestC err = check(key, value, strconv.FormatBool(test.Paused)) case "timeout": err = check(key, value, strconv.Itoa(test.Timeout)) - case "contact_id": - err = check(key, value, strconv.Itoa(test.ContactID)) + case "contact_group": + for _, tv := range test.ContactGroup { + err = check(key, value, tv) + if err != nil { + return err + } + } case "confirmations": err = check(key, value, strconv.Itoa(test.Confirmation)) case "trigger_rate": err = check(key, value, strconv.Itoa(test.TriggerRate)) + case "custom_header": + err = check(key, value, test.CustomHeader) + case "node_locations": + for _, tv := range test.NodeLocations { + err = check(key, value, tv) + if err != nil { + return err + } + } + case "public": + err = check(key, value, strconv.Itoa(test.Public)) + case "logo_image": + err = check(key, value, test.LogoImage) + case "find_string": + err = check(key, value, test.FindString) + case "do_not_find": + err = check(key, value, strconv.FormatBool(test.DoNotFind)) + case "status_codes": + err = check(key, value, test.StatusCodes) + case "use_jar": + err = check(key, value, strconv.Itoa(test.UseJar)) + case "post_raw": + err = check(key, value, test.PostRaw) + case "final_endpoint": + err = check(key, value, test.FinalEndpoint) + case "enable_ssl_alert": + err = check(key, value, strconv.FormatBool(test.EnableSSLAlert)) + case "follow_redirect": + err = check(key, value, strconv.FormatBool(test.FollowRedirect)) } - if err != nil { return err } @@ -164,6 +239,16 @@ func testAccTestCheckDestroy(test *statuscake.Test) resource.TestCheckFunc { } } +func interpolateTerraformTemplate(template string) string { + testContactGroupId := "43402" + + if v := os.Getenv("STATUSCAKE_TEST_CONTACT_GROUP_ID"); v != "" { + testContactGroupId = v + } + + return fmt.Sprintf(template, testContactGroupId) +} + const testAccTestConfig_basic = ` resource "statuscake_test" "google" { website_name = "google.com" @@ -171,12 +256,23 @@ resource "statuscake_test" "google" { test_type = "HTTP" check_rate = 300 timeout = 10 - contact_id = 43402 + contact_group = ["%s"] + confirmations = 1 + trigger_rate = 10 +} +` +const testAccTestConfig_deprecated = ` +resource "statuscake_test" "google" { + website_name = "google.com" + website_url = "www.google.com" + test_type = "HTTP" + check_rate = 300 + timeout = 10 + contact_id = %s confirmations = 1 trigger_rate = 10 } ` - const testAccTestConfig_update = ` resource "statuscake_test" "google" { website_name = "google.com" @@ -185,6 +281,27 @@ resource "statuscake_test" "google" { check_rate = 500 paused = true trigger_rate = 20 + custom_header = "{ \"Content-Type\": \"application/x-www-form-urlencoded\" }" + user_agent = "string9988" + node_locations = [ "string16045", "string19741", "string12122" ] + ping_url = "string8410" + basic_user = "string27052" + basic_pass = "string5659" + public = 0 + logo_image = "string21087" + branding = 25875 + website_host = "string32368" + virus = 1 + find_string = "string15212" + do_not_find = false + real_browser = 1 + test_tags = ["string8191"] + status_codes = "string23065" + use_jar = 1 + post_raw = "string32096" + final_endpoint = "string10781" + enable_ssl_alert = false + follow_redirect = true } ` @@ -195,7 +312,7 @@ resource "statuscake_test" "google" { test_type = "TCP" check_rate = 300 timeout = 10 - contact_id = 43402 + contact_group = ["%s"] confirmations = 1 port = 80 }