Skip to content

Commit

Permalink
Fix tests by using default stack for apps, no longer requiring test u…
Browse files Browse the repository at this point in the history
…pdates as stacks are end-of-lifed
  • Loading branch information
mars committed May 24, 2023
1 parent 68032c9 commit a7d26fa
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 52 deletions.
15 changes: 5 additions & 10 deletions heroku/data_source_heroku_app_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,22 +11,19 @@ import (

func TestAccDatasourceHerokuApp_Basic(t *testing.T) {
appName := fmt.Sprintf("tftest-%s", acctest.RandString(10))
appStack := "heroku-20"
gitUrl := fmt.Sprintf("https://git.heroku.com/%s.git", appName)

resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProviders,
Steps: []resource.TestStep{
{
Config: testAccCheckHerokuAppWithDatasource_basic(appName, appStack),
Config: testAccCheckHerokuAppWithDatasource_basic(appName),
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttr(
"data.heroku_app.foobar", "name", appName),
resource.TestCheckResourceAttrSet(
"data.heroku_app.foobar", "id"),
resource.TestCheckResourceAttr(
"data.heroku_app.foobar", "stack", appStack),
resource.TestCheckResourceAttr(
"data.heroku_app.foobar", "region", "us"),
resource.TestCheckResourceAttr(
Expand Down Expand Up @@ -72,11 +69,10 @@ func TestAccDatasourceHerokuApp_Organization(t *testing.T) {
})
}

func testAccCheckHerokuApp_basic(appName string, stack string) string {
func testAccCheckHerokuApp_basic(appName string) string {
return fmt.Sprintf(`
resource "heroku_app" "foobar" {
name = "%s"
stack = "%s"
region = "us"
buildpacks = [
Expand All @@ -87,14 +83,13 @@ resource "heroku_app" "foobar" {
FOO = "bar"
}
}
`, appName, stack)
`, appName)
}

func testAccCheckHerokuAppWithDatasource_basic(appName string, stack string) string {
func testAccCheckHerokuAppWithDatasource_basic(appName string) string {
return fmt.Sprintf(`
resource "heroku_app" "foobar" {
name = "%s"
stack = "%s"
region = "us"
buildpacks = [
Expand All @@ -110,7 +105,7 @@ resource "heroku_app" "foobar" {
data "heroku_app" "foobar" {
name = "${heroku_app.foobar.name}"
}
`, appName, stack)
`, appName)
}

func testAccCheckHerokuApp_organization(appName, orgName string) string {
Expand Down
3 changes: 1 addition & 2 deletions heroku/import_heroku_app_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,14 @@ import (

func TestAccHerokuApp_importBasic(t *testing.T) {
appName := fmt.Sprintf("tftest-%s", acctest.RandString(10))
appStack := "heroku-20"

resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProviders,
CheckDestroy: testAccCheckHerokuAppDestroy,
Steps: []resource.TestStep{
{
Config: testAccCheckHerokuAppConfig_basic(appName, appStack),
Config: testAccCheckHerokuAppConfig_basic(appName),
},
{
ResourceName: "heroku_app.foobar",
Expand Down
57 changes: 18 additions & 39 deletions heroku/resource_heroku_app_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,18 +20,17 @@ import (
func TestAccHerokuApp_Basic(t *testing.T) {
var app heroku.App
appName := fmt.Sprintf("tftest-%s", acctest.RandString(10))
appStack := "heroku-20"

resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProviders,
CheckDestroy: testAccCheckHerokuAppDestroy,
Steps: []resource.TestStep{
{
Config: testAccCheckHerokuAppConfig_basic(appName, appStack),
Config: testAccCheckHerokuAppConfig_basic(appName),
Check: resource.ComposeTestCheckFunc(
testAccCheckHerokuAppExists("heroku_app.foobar", &app),
testAccCheckHerokuAppAttributes(&app, appName, "heroku-20"),
testAccCheckHerokuAppAttributes(&app, appName),
resource.TestCheckResourceAttr(
"heroku_app.foobar", "name", appName),
resource.TestCheckResourceAttrSet(
Expand Down Expand Up @@ -60,14 +59,13 @@ func TestAccHerokuApp_Basic(t *testing.T) {

func TestAccHerokuApp_DontSetAllConfigVars(t *testing.T) {
appName := fmt.Sprintf("tftest-%s", acctest.RandString(10))
appStack := "heroku-20"

resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
ProviderFactories: testAccProviderFactories,
Steps: []resource.TestStep{
{
Config: testAccCheckHerokuAppConfig_DontSetConfigVars(appName, appStack),
Config: testAccCheckHerokuAppConfig_DontSetConfigVars(appName),
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttr(
"heroku_app.foobar", "name", appName),
Expand All @@ -88,15 +86,14 @@ func TestAccHerokuApp_DontSetAllConfigVars(t *testing.T) {
func TestAccHerokuApp_Disappears(t *testing.T) {
var app heroku.App
appName := fmt.Sprintf("tftest-%s", acctest.RandString(10))
appStack := "heroku-18"

resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProviders,
CheckDestroy: testAccCheckHerokuAppDestroy,
Steps: []resource.TestStep{
{
Config: testAccCheckHerokuAppConfig_basic(appName, appStack),
Config: testAccCheckHerokuAppConfig_basic(appName),
Check: resource.ComposeTestCheckFunc(
testAccCheckHerokuAppExists("heroku_app.foobar", &app),
testAccCheckHerokuAppDisappears(appName),
Expand All @@ -111,36 +108,30 @@ func TestAccHerokuApp_Change(t *testing.T) {
var app heroku.App
appName := fmt.Sprintf("tftest-%s", acctest.RandString(10))
appName2 := fmt.Sprintf("%s-v2", appName)
appStack := "heroku-18"
appStack2 := "heroku-20"

resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProviders,
CheckDestroy: testAccCheckHerokuAppDestroy,
Steps: []resource.TestStep{
{
Config: testAccCheckHerokuAppConfig_basic(appName, appStack),
Config: testAccCheckHerokuAppConfig_basic(appName),
Check: resource.ComposeTestCheckFunc(
testAccCheckHerokuAppExists("heroku_app.foobar", &app),
testAccCheckHerokuAppAttributes(&app, appName, appStack),
testAccCheckHerokuAppAttributes(&app, appName),
resource.TestCheckResourceAttr(
"heroku_app.foobar", "name", appName),
resource.TestCheckResourceAttr(
"heroku_app.foobar", "stack", appStack),
resource.TestCheckResourceAttr(
"heroku_app.foobar", "config_vars.FOO", "bar"),
),
},
{
Config: testAccCheckHerokuAppConfig_updated(appName2, appStack2),
Config: testAccCheckHerokuAppConfig_updated(appName2),
Check: resource.ComposeTestCheckFunc(
testAccCheckHerokuAppExists("heroku_app.foobar", &app),
testAccCheckHerokuAppAttributesUpdated(&app, appName2, appStack2),
testAccCheckHerokuAppAttributesUpdated(&app, appName2),
resource.TestCheckResourceAttr(
"heroku_app.foobar", "name", appName2),
resource.TestCheckResourceAttr(
"heroku_app.foobar", "stack", appStack2),
resource.TestCheckResourceAttr(
"heroku_app.foobar", "config_vars.FOO", "bing"),
resource.TestCheckResourceAttr(
Expand All @@ -154,18 +145,17 @@ func TestAccHerokuApp_Change(t *testing.T) {
func TestAccHerokuApp_NukeVars(t *testing.T) {
var app heroku.App
appName := fmt.Sprintf("tftest-%s", acctest.RandString(10))
appStack := "heroku-20"

resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProviders,
CheckDestroy: testAccCheckHerokuAppDestroy,
Steps: []resource.TestStep{
{
Config: testAccCheckHerokuAppConfig_basic(appName, appStack),
Config: testAccCheckHerokuAppConfig_basic(appName),
Check: resource.ComposeTestCheckFunc(
testAccCheckHerokuAppExists("heroku_app.foobar", &app),
testAccCheckHerokuAppAttributes(&app, appName, "heroku-20"),
testAccCheckHerokuAppAttributes(&app, appName),
resource.TestCheckResourceAttr(
"heroku_app.foobar", "name", appName),
resource.TestCheckResourceAttr(
Expand Down Expand Up @@ -504,18 +494,14 @@ func testAccCheckHerokuAppDestroy(s *terraform.State) error {
return nil
}

func testAccCheckHerokuAppAttributes(app *heroku.App, appName, stackName string) resource.TestCheckFunc {
func testAccCheckHerokuAppAttributes(app *heroku.App, appName string) resource.TestCheckFunc {
return func(s *terraform.State) error {
client := testAccProvider.Meta().(*Config).Api

if app.Region.Name != "us" {
return fmt.Errorf("Bad region: %s", app.Region.Name)
}

if app.BuildStack.Name != stackName {
return fmt.Errorf("Bad stack: %s", app.BuildStack.Name)
}

if app.Name != appName {
return fmt.Errorf("Bad name: %s", app.Name)
}
Expand All @@ -533,14 +519,10 @@ func testAccCheckHerokuAppAttributes(app *heroku.App, appName, stackName string)
}
}

func testAccCheckHerokuAppAttributesUpdated(app *heroku.App, appName, stackName string) resource.TestCheckFunc {
func testAccCheckHerokuAppAttributesUpdated(app *heroku.App, appName string) resource.TestCheckFunc {
return func(s *terraform.State) error {
client := testAccProvider.Meta().(*Config).Api

if app.BuildStack.Name != stackName {
return fmt.Errorf("Bad stack: %s", app.BuildStack.Name)
}

if app.Name != appName {
return fmt.Errorf("Bad name: %s", app.Name)
}
Expand Down Expand Up @@ -776,17 +758,16 @@ func testAccCheckHerokuAppDisappears(appName string) resource.TestCheckFunc {
}
}

func testAccCheckHerokuAppConfig_basic(appName, appStack string) string {
func testAccCheckHerokuAppConfig_basic(appName string) string {
return fmt.Sprintf(`
resource "heroku_app" "foobar" {
name = "%s"
stack = "%s"
region = "us"
config_vars = {
FOO = "bar"
}
}`, appName, appStack)
}`, appName)
}

func testAccCheckHerokuAppConfig_go(appName string) string {
Expand All @@ -812,18 +793,17 @@ resource "heroku_app" "foobar" {
}`, appName)
}

func testAccCheckHerokuAppConfig_updated(appName, appStack string) string {
func testAccCheckHerokuAppConfig_updated(appName string) string {
return fmt.Sprintf(`
resource "heroku_app" "foobar" {
name = "%s"
stack = "%s"
region = "us"
config_vars = {
FOO = "bing"
BAZ = "bar"
}
}`, appName, appStack)
}`, appName)
}

func testAccCheckHerokuAppConfig_no_vars(appName string) string {
Expand Down Expand Up @@ -1009,7 +989,7 @@ resource "heroku_app" "foobar" {
}`, appName, org, locked)
}

func testAccCheckHerokuAppConfig_DontSetConfigVars(appName, appStack string) string {
func testAccCheckHerokuAppConfig_DontSetConfigVars(appName string) string {
return fmt.Sprintf(`
provider "heroku" {
customizations {
Expand All @@ -1019,11 +999,10 @@ provider "heroku" {
resource "heroku_app" "foobar" {
name = "%s"
stack = "%s"
region = "us"
config_vars = {
FOO = "bar"
}
}`, appName, appStack)
}`, appName)
}
1 change: 0 additions & 1 deletion heroku/resource_heroku_slug_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -237,7 +237,6 @@ resource "heroku_slug" "foobar" {
test = "echo 'Just a test'"
diag = "echo 'Just diagnosis'"
}
stack = "heroku-18"
}`, appName)
}

Expand Down

0 comments on commit a7d26fa

Please sign in to comment.