From 754f142077413d1cfd1e3c8e2fc3f3c0c341ca69 Mon Sep 17 00:00:00 2001 From: Andrew N Golovkov Date: Tue, 16 Jan 2018 15:07:28 +0200 Subject: update statuscake provider for support all the features from the statuscake module --- statuscake/resource_statuscaketest_test.go | 103 +++++++++++++++++++++++++++-- 1 file changed, 99 insertions(+), 4 deletions(-) (limited to 'statuscake/resource_statuscaketest_test.go') diff --git a/statuscake/resource_statuscaketest_test.go b/statuscake/resource_statuscaketest_test.go index f07fcc5..b39d23c 100644 --- a/statuscake/resource_statuscaketest_test.go +++ b/statuscake/resource_statuscaketest_test.go @@ -74,6 +74,31 @@ func TestAccStatusCake_withUpdate(t *testing.T) { 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", "string22117"), + resource.TestCheckResourceAttr("statuscake_test.google", "uptime", "3498.27"), + resource.TestCheckResourceAttr("statuscake_test.google", "node_locations.#", "3"), + resource.TestCheckResourceAttr("statuscake_test.google", "node_locations.0", "string16045"), + resource.TestCheckResourceAttr("statuscake_test.google", "node_locations.1", "string19741"), + resource.TestCheckResourceAttr("statuscake_test.google", "node_locations.2", "string12122"), + 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", "string8191"), + 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", "follow_redirect", "true"), ), }, }, @@ -137,13 +162,61 @@ func testAccTestCheckAttributes(rn string, test *statuscake.Test) resource.TestC case "timeout": err = check(key, value, strconv.Itoa(test.Timeout)) case "contact_id": - err = check(key, value, strconv.Itoa(test.ContactID)) + err = check(key, value, test.ContactID) 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 "user_agent": + err = check(key, value, test.UserAgent) + case "status": + err = check(key, value, test.Status) + case "uptime": + err = check(key, value, strconv.FormatFloat(test.Uptime, 'f', -1, 64)) + case "node_locations": + for _, tv := range test.NodeLocations { + err = check(key, value, tv) + if err != nil { + return err + } + } + case "ping_url": + err = check(key, value, test.PingURL) + case "basic_user": + err = check(key, value, test.BasicUser) + case "basic_pass": + err = check(key, value, test.BasicPass) + case "public": + err = check(key, value, strconv.Itoa(test.Public)) + case "logo_image": + err = check(key, value, test.LogoImage) + case "branding": + err = check(key, value, strconv.Itoa(test.Branding)) + case "website_host": + err = check(key, value, test.WebsiteHost) + case "virus": + err = check(key, value, strconv.Itoa(test.Virus)) + case "find_string": + err = check(key, value, test.FindString) + case "do_not_find": + err = check(key, value, strconv.FormatBool(test.DoNotFind)) + case "real_browser": + err = check(key, value, strconv.Itoa(test.RealBrowser)) + case "test_tags": + err = check(key, value, test.TestTags) + 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 "follow_redirect": + err = check(key, value, strconv.FormatBool(test.FollowRedirect)) } - if err != nil { return err } @@ -171,7 +244,7 @@ resource "statuscake_test" "google" { test_type = "HTTP" check_rate = 300 timeout = 10 - contact_id = 43402 + contact_id = "43402" confirmations = 1 trigger_rate = 10 } @@ -185,6 +258,28 @@ resource "statuscake_test" "google" { check_rate = 500 paused = true trigger_rate = 20 + custom_header = "{ \"Content-Type\": \"application/x-www-form-urlencoded\" }" + user_agent = "string9988" + status = "string22117" + uptime = 3498.27 + 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" + follow_redirect = true } ` @@ -195,7 +290,7 @@ resource "statuscake_test" "google" { test_type = "TCP" check_rate = 300 timeout = 10 - contact_id = 43402 + contact_id = "43402" confirmations = 1 port = 80 } -- cgit v1.2.3 From a609749989d4ea67354ac5a464ce42a7b807b869 Mon Sep 17 00:00:00 2001 From: Andrew N Golovkov Date: Tue, 16 Jan 2018 16:11:43 +0200 Subject: `status` and `uptime` params is calculated --- statuscake/resource_statuscaketest_test.go | 6 ------ 1 file changed, 6 deletions(-) (limited to 'statuscake/resource_statuscaketest_test.go') diff --git a/statuscake/resource_statuscaketest_test.go b/statuscake/resource_statuscaketest_test.go index b39d23c..99acd04 100644 --- a/statuscake/resource_statuscaketest_test.go +++ b/statuscake/resource_statuscaketest_test.go @@ -171,10 +171,6 @@ func testAccTestCheckAttributes(rn string, test *statuscake.Test) resource.TestC err = check(key, value, test.CustomHeader) case "user_agent": err = check(key, value, test.UserAgent) - case "status": - err = check(key, value, test.Status) - case "uptime": - err = check(key, value, strconv.FormatFloat(test.Uptime, 'f', -1, 64)) case "node_locations": for _, tv := range test.NodeLocations { err = check(key, value, tv) @@ -260,8 +256,6 @@ resource "statuscake_test" "google" { trigger_rate = 20 custom_header = "{ \"Content-Type\": \"application/x-www-form-urlencoded\" }" user_agent = "string9988" - status = "string22117" - uptime = 3498.27 node_locations = [ "string16045", "string19741", "string12122" ] ping_url = "string8410" basic_user = "string27052" -- cgit v1.2.3 From c9458806c73b69e6af47eddd83391197b6d2a641 Mon Sep 17 00:00:00 2001 From: Andrew N Golovkov Date: Wed, 17 Jan 2018 16:55:18 +0200 Subject: merge changes from https://github.com/DreamItGetIT/statuscake/pull/24 to vendor directory --- statuscake/resource_statuscaketest_test.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'statuscake/resource_statuscaketest_test.go') diff --git a/statuscake/resource_statuscaketest_test.go b/statuscake/resource_statuscaketest_test.go index 99acd04..b727e92 100644 --- a/statuscake/resource_statuscaketest_test.go +++ b/statuscake/resource_statuscaketest_test.go @@ -162,7 +162,7 @@ func testAccTestCheckAttributes(rn string, test *statuscake.Test) resource.TestC case "timeout": err = check(key, value, strconv.Itoa(test.Timeout)) case "contact_id": - err = check(key, value, test.ContactID) + err = check(key, value, strconv.Itoa(test.ContactID)) case "confirmations": err = check(key, value, strconv.Itoa(test.Confirmation)) case "trigger_rate": @@ -240,7 +240,7 @@ resource "statuscake_test" "google" { test_type = "HTTP" check_rate = 300 timeout = 10 - contact_id = "43402" + contact_id = 43402 confirmations = 1 trigger_rate = 10 } @@ -284,7 +284,7 @@ resource "statuscake_test" "google" { test_type = "TCP" check_rate = 300 timeout = 10 - contact_id = "43402" + contact_id = 43402 confirmations = 1 port = 80 } -- cgit v1.2.3 From aa4f9726b4fd3cc624fe5784b033840a6c92c84c Mon Sep 17 00:00:00 2001 From: Mat Schaffer Date: Thu, 1 Feb 2018 16:07:31 +0900 Subject: Parameterize the contact ID used for acceptance testing This allowed me to run acceptance tests on my own account. --- statuscake/resource_statuscaketest_test.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'statuscake/resource_statuscaketest_test.go') diff --git a/statuscake/resource_statuscaketest_test.go b/statuscake/resource_statuscaketest_test.go index b727e92..ea69756 100644 --- a/statuscake/resource_statuscaketest_test.go +++ b/statuscake/resource_statuscaketest_test.go @@ -19,7 +19,7 @@ func TestAccStatusCake_basic(t *testing.T) { CheckDestroy: testAccTestCheckDestroy(&test), Steps: []resource.TestStep{ { - Config: testAccTestConfig_basic, + Config: fmt.Sprintf(testAccTestConfig_basic, testContactGroupId), Check: resource.ComposeTestCheckFunc( testAccTestCheckExists("statuscake_test.google", &test), testAccTestCheckAttributes("statuscake_test.google", &test), @@ -38,7 +38,7 @@ func TestAccStatusCake_tcp(t *testing.T) { CheckDestroy: testAccTestCheckDestroy(&test), Steps: []resource.TestStep{ { - Config: testAccTestConfig_tcp, + Config: fmt.Sprintf(testAccTestConfig_tcp, testContactGroupId), Check: resource.ComposeTestCheckFunc( testAccTestCheckExists("statuscake_test.google", &test), testAccTestCheckAttributes("statuscake_test.google", &test), @@ -57,7 +57,7 @@ func TestAccStatusCake_withUpdate(t *testing.T) { CheckDestroy: testAccTestCheckDestroy(&test), Steps: []resource.TestStep{ { - Config: testAccTestConfig_basic, + Config: fmt.Sprintf(testAccTestConfig_basic, testContactGroupId), Check: resource.ComposeTestCheckFunc( testAccTestCheckExists("statuscake_test.google", &test), ), @@ -240,7 +240,7 @@ resource "statuscake_test" "google" { test_type = "HTTP" check_rate = 300 timeout = 10 - contact_id = 43402 + contact_id = %d confirmations = 1 trigger_rate = 10 } @@ -284,7 +284,7 @@ resource "statuscake_test" "google" { test_type = "TCP" check_rate = 300 timeout = 10 - contact_id = 43402 + contact_id = %d confirmations = 1 port = 80 } -- cgit v1.2.3 From d01e3cca165df6d7d4a9d2a6cf30ed5a7bed9a4c Mon Sep 17 00:00:00 2001 From: Mat Schaffer Date: Thu, 1 Feb 2018 16:10:53 +0900 Subject: Fix status & uptime assertions They were present in the details but the values were different during my testing. Hopefully this proves true for all future testing. --- statuscake/resource_statuscaketest_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'statuscake/resource_statuscaketest_test.go') diff --git a/statuscake/resource_statuscaketest_test.go b/statuscake/resource_statuscaketest_test.go index ea69756..62d6bf9 100644 --- a/statuscake/resource_statuscaketest_test.go +++ b/statuscake/resource_statuscaketest_test.go @@ -76,8 +76,8 @@ func TestAccStatusCake_withUpdate(t *testing.T) { 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", "string22117"), - resource.TestCheckResourceAttr("statuscake_test.google", "uptime", "3498.27"), + 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", "node_locations.0", "string16045"), resource.TestCheckResourceAttr("statuscake_test.google", "node_locations.1", "string19741"), -- cgit v1.2.3 From 89027b6ac2e02ed5097e2aed6e2a5e0b0476d5f9 Mon Sep 17 00:00:00 2001 From: Mat Schaffer Date: Thu, 1 Feb 2018 16:14:33 +0900 Subject: Switch node locations to a set and consider empty string to be empty set Note that we also don't check the individual locations anymore. The key numbers will be randomized and not testing content seems to be the method employed by the AWS provider as well https://github.com/terraform-providers/terraform-provider-aws/blob/81bba6b1f567aed561c6a6a30916504ee0886c68/aws/resource_aws_autoscaling_group_test.go#L404 --- statuscake/resource_statuscaketest_test.go | 3 --- 1 file changed, 3 deletions(-) (limited to 'statuscake/resource_statuscaketest_test.go') diff --git a/statuscake/resource_statuscaketest_test.go b/statuscake/resource_statuscaketest_test.go index 62d6bf9..555cff1 100644 --- a/statuscake/resource_statuscaketest_test.go +++ b/statuscake/resource_statuscaketest_test.go @@ -79,9 +79,6 @@ func TestAccStatusCake_withUpdate(t *testing.T) { 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", "node_locations.0", "string16045"), - resource.TestCheckResourceAttr("statuscake_test.google", "node_locations.1", "string19741"), - resource.TestCheckResourceAttr("statuscake_test.google", "node_locations.2", "string12122"), resource.TestCheckResourceAttr("statuscake_test.google", "ping_url", "string8410"), resource.TestCheckResourceAttr("statuscake_test.google", "basic_user", "string27052"), resource.TestCheckResourceAttr("statuscake_test.google", "basic_pass", "string5659"), -- cgit v1.2.3 From ef20d8d74891bfcfbf17088c4cd9c39cd1e347dd Mon Sep 17 00:00:00 2001 From: Mat Schaffer Date: Thu, 1 Feb 2018 16:15:21 +0900 Subject: Don't attempt to set or verify values which aren't present in the details response The `TestCheckResourceAttr` tests can stay since they rely on the state from the previous apply. --- statuscake/resource_statuscaketest_test.go | 18 ------------------ 1 file changed, 18 deletions(-) (limited to 'statuscake/resource_statuscaketest_test.go') diff --git a/statuscake/resource_statuscaketest_test.go b/statuscake/resource_statuscaketest_test.go index 555cff1..da3a349 100644 --- a/statuscake/resource_statuscaketest_test.go +++ b/statuscake/resource_statuscaketest_test.go @@ -166,8 +166,6 @@ func testAccTestCheckAttributes(rn string, test *statuscake.Test) resource.TestC err = check(key, value, strconv.Itoa(test.TriggerRate)) case "custom_header": err = check(key, value, test.CustomHeader) - case "user_agent": - err = check(key, value, test.UserAgent) case "node_locations": for _, tv := range test.NodeLocations { err = check(key, value, tv) @@ -175,30 +173,14 @@ func testAccTestCheckAttributes(rn string, test *statuscake.Test) resource.TestC return err } } - case "ping_url": - err = check(key, value, test.PingURL) - case "basic_user": - err = check(key, value, test.BasicUser) - case "basic_pass": - err = check(key, value, test.BasicPass) case "public": err = check(key, value, strconv.Itoa(test.Public)) case "logo_image": err = check(key, value, test.LogoImage) - case "branding": - err = check(key, value, strconv.Itoa(test.Branding)) - case "website_host": - err = check(key, value, test.WebsiteHost) - case "virus": - err = check(key, value, strconv.Itoa(test.Virus)) case "find_string": err = check(key, value, test.FindString) case "do_not_find": err = check(key, value, strconv.FormatBool(test.DoNotFind)) - case "real_browser": - err = check(key, value, strconv.Itoa(test.RealBrowser)) - case "test_tags": - err = check(key, value, test.TestTags) case "status_codes": err = check(key, value, test.StatusCodes) case "use_jar": -- cgit v1.2.3 From 7d96831373ec571cf0d7bcd930fd6118dc509fc2 Mon Sep 17 00:00:00 2001 From: Mat Schaffer Date: Thu, 1 Feb 2018 22:53:16 +0900 Subject: Move template interpolation deeper into acceptance tests Since it was failing `make test` on travis. Must be a better way to go about this, but I couldn't come up with a better way that defaulting the value to avoid the error when running non-acceptance tests. --- statuscake/resource_statuscaketest_test.go | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'statuscake/resource_statuscaketest_test.go') diff --git a/statuscake/resource_statuscaketest_test.go b/statuscake/resource_statuscaketest_test.go index da3a349..8bcbb36 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,7 @@ func TestAccStatusCake_basic(t *testing.T) { CheckDestroy: testAccTestCheckDestroy(&test), Steps: []resource.TestStep{ { - Config: fmt.Sprintf(testAccTestConfig_basic, testContactGroupId), + Config: interpolateTerraformTemplate(testAccTestConfig_basic), Check: resource.ComposeTestCheckFunc( testAccTestCheckExists("statuscake_test.google", &test), testAccTestCheckAttributes("statuscake_test.google", &test), @@ -38,7 +39,7 @@ func TestAccStatusCake_tcp(t *testing.T) { CheckDestroy: testAccTestCheckDestroy(&test), Steps: []resource.TestStep{ { - Config: fmt.Sprintf(testAccTestConfig_tcp, testContactGroupId), + Config: interpolateTerraformTemplate(testAccTestConfig_tcp), Check: resource.ComposeTestCheckFunc( testAccTestCheckExists("statuscake_test.google", &test), testAccTestCheckAttributes("statuscake_test.google", &test), @@ -57,7 +58,7 @@ func TestAccStatusCake_withUpdate(t *testing.T) { CheckDestroy: testAccTestCheckDestroy(&test), Steps: []resource.TestStep{ { - Config: fmt.Sprintf(testAccTestConfig_basic, testContactGroupId), + Config: interpolateTerraformTemplate(testAccTestConfig_basic), Check: resource.ComposeTestCheckFunc( testAccTestCheckExists("statuscake_test.google", &test), ), @@ -212,6 +213,19 @@ func testAccTestCheckDestroy(test *statuscake.Test) resource.TestCheckFunc { } } +func interpolateTerraformTemplate(template string) string { + testContactGroupId := 43402 + + if v := os.Getenv("STATUSCAKE_TEST_CONTACT_GROUP_ID"); v != "" { + id, err := strconv.Atoi(v) + if err == nil { + testContactGroupId = id + } + } + + return fmt.Sprintf(template, testContactGroupId) +} + const testAccTestConfig_basic = ` resource "statuscake_test" "google" { website_name = "google.com" -- cgit v1.2.3