Skip to content

Commit

Permalink
Extract okta URL to test vars
Browse files Browse the repository at this point in the history
  • Loading branch information
sfc-gh-asawicki committed Jan 13, 2025
1 parent 679fcc7 commit a686409
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 31 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (

"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/acceptance/bettertestspoc/config"
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/acceptance/helpers"
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/acceptance/testvars"
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/sdk"
)

Expand Down Expand Up @@ -70,7 +71,7 @@ func (m *SnowflakeModel) AllFields(tmpConfig *helpers.TmpTomlConfig, tmpUser *he
WithValidateDefaultParameters("true").
WithClientIp("3.3.3.3").
WithAuthenticatorType(sdk.AuthenticationTypeJwt).
WithOktaUrl("https://example-tf.com").
WithOktaUrl(testvars.ExampleOktaUrlString).
WithLoginTimeout(101).
WithRequestTimeout(201).
WithJwtExpireTimeout(301).
Expand Down
5 changes: 3 additions & 2 deletions pkg/acceptance/helpers/config_toml_creator.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
"testing"

"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/acceptance/helpers/random"
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/acceptance/testvars"
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/sdk"
)

Expand All @@ -25,7 +26,7 @@ warehouse = '%[4]s'
clientip = '1.2.3.4'
protocol = 'https'
port = 443
oktaurl = 'https://example.com'
oktaurl = '%[8]s'
clienttimeout = 10
jwtclienttimeout = 20
logintimeout = 30
Expand All @@ -50,7 +51,7 @@ disableconsolelogin = true
[%[1]s.params]
foo = 'bar'
`, profile, userId.Name(), roleId.Name(), warehouseId.Name(), accountIdentifier.OrganizationName(), accountIdentifier.AccountName(), privateKey)
`, profile, userId.Name(), roleId.Name(), warehouseId.Name(), accountIdentifier.OrganizationName(), accountIdentifier.AccountName(), privateKey, testvars.ExampleOktaUrlString)
}

// FullInvalidTomlConfigForServiceUser is a temporary function used to test provider configuration
Expand Down
9 changes: 9 additions & 0 deletions pkg/acceptance/testvars/okta.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package testvars

import "net/url"

var ExampleOktaUrlString = "https://example-tf.com"
var ExampleOktaUrl, _ = url.Parse(ExampleOktaUrlString)

var ExampleOktaUrlFromEnvString = "https://example-tf-env.com"
var ExampleOktaUrlFromEnv, _ = url.Parse(ExampleOktaUrlFromEnvString)
21 changes: 6 additions & 15 deletions pkg/provider/provider_acceptance_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package provider_test
import (
"fmt"
"net"
"net/url"
"os"
"regexp"
"strings"
Expand All @@ -21,6 +20,7 @@ import (
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/acceptance/ids"
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/acceptance/testenvs"
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/acceptance/testprofiles"
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/acceptance/testvars"
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/internal/snowflakeenvs"
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/provider/previewfeatures"
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/sdk"
Expand Down Expand Up @@ -234,9 +234,6 @@ func TestAcc_Provider_tomlConfig(t *testing.T) {
return helpers.FullTomlConfigForServiceUser(t, profile, tmpServiceUser.UserId, tmpServiceUser.RoleId, tmpServiceUser.WarehouseId, tmpServiceUser.AccountId, tmpServiceUser.PrivateKey)
})

oktaUrl, err := url.Parse("https://example.com")
require.NoError(t, err)

resource.Test(t, resource.TestCase{
ProtoV6ProviderFactories: acc.TestAccProtoV6ProviderFactories,
PreCheck: func() {
Expand Down Expand Up @@ -266,7 +263,7 @@ func TestAcc_Provider_tomlConfig(t *testing.T) {
assert.Equal(t, 443, config.Port)
assert.Equal(t, gosnowflake.AuthTypeJwt, config.Authenticator)
assert.Equal(t, false, config.PasscodeInPassword)
assert.Equal(t, oktaUrl, config.OktaURL)
assert.Equal(t, testvars.ExampleOktaUrl, config.OktaURL)
assert.Equal(t, 30*time.Second, config.LoginTimeout)
assert.Equal(t, 40*time.Second, config.RequestTimeout)
assert.Equal(t, 50*time.Second, config.JWTExpireTimeout)
Expand Down Expand Up @@ -309,9 +306,6 @@ func TestAcc_Provider_envConfig(t *testing.T) {
return helpers.FullInvalidTomlConfigForServiceUser(t, profile)
})

oktaUrlFromEnv, err := url.Parse("https://example-env.com")
require.NoError(t, err)

resource.Test(t, resource.TestCase{
ProtoV6ProviderFactories: acc.TestAccProtoV6ProviderFactories,
PreCheck: func() {
Expand Down Expand Up @@ -342,7 +336,7 @@ func TestAcc_Provider_envConfig(t *testing.T) {
t.Setenv(snowflakeenvs.Host, "")
t.Setenv(snowflakeenvs.Passcode, "")
t.Setenv(snowflakeenvs.PasscodeInPassword, "false")
t.Setenv(snowflakeenvs.OktaUrl, "https://example-env.com")
t.Setenv(snowflakeenvs.OktaUrl, testvars.ExampleOktaUrlFromEnvString)
t.Setenv(snowflakeenvs.LoginTimeout, "100")
t.Setenv(snowflakeenvs.RequestTimeout, "200")
t.Setenv(snowflakeenvs.JwtExpireTimeout, "300")
Expand Down Expand Up @@ -377,7 +371,7 @@ func TestAcc_Provider_envConfig(t *testing.T) {
assert.Equal(t, 443, config.Port)
assert.Equal(t, gosnowflake.AuthTypeJwt, config.Authenticator)
assert.Equal(t, false, config.PasscodeInPassword)
assert.Equal(t, oktaUrlFromEnv, config.OktaURL)
assert.Equal(t, testvars.ExampleOktaUrlFromEnv, config.OktaURL)
assert.Equal(t, 100*time.Second, config.LoginTimeout)
assert.Equal(t, 200*time.Second, config.RequestTimeout)
assert.Equal(t, 300*time.Second, config.JWTExpireTimeout)
Expand Down Expand Up @@ -420,9 +414,6 @@ func TestAcc_Provider_tfConfig(t *testing.T) {
return helpers.FullInvalidTomlConfigForServiceUser(t, profile)
})

oktaUrlFromTf, err := url.Parse("https://example-tf.com")
require.NoError(t, err)

resource.Test(t, resource.TestCase{
ProtoV6ProviderFactories: acc.TestAccProtoV6ProviderFactories,
PreCheck: func() {
Expand Down Expand Up @@ -454,7 +445,7 @@ func TestAcc_Provider_tfConfig(t *testing.T) {
t.Setenv(snowflakeenvs.Authenticator, "invalid")
t.Setenv(snowflakeenvs.Passcode, "")
t.Setenv(snowflakeenvs.PasscodeInPassword, "false")
t.Setenv(snowflakeenvs.OktaUrl, "https://example-env.com")
t.Setenv(snowflakeenvs.OktaUrl, testvars.ExampleOktaUrlFromEnvString)
t.Setenv(snowflakeenvs.LoginTimeout, "100")
t.Setenv(snowflakeenvs.RequestTimeout, "200")
t.Setenv(snowflakeenvs.JwtExpireTimeout, "300")
Expand Down Expand Up @@ -489,7 +480,7 @@ func TestAcc_Provider_tfConfig(t *testing.T) {
assert.Equal(t, 443, config.Port)
assert.Equal(t, gosnowflake.AuthTypeJwt, config.Authenticator)
assert.Equal(t, false, config.PasscodeInPassword)
assert.Equal(t, oktaUrlFromTf, config.OktaURL)
assert.Equal(t, testvars.ExampleOktaUrl, config.OktaURL)
assert.Equal(t, 101*time.Second, config.LoginTimeout)
assert.Equal(t, 201*time.Second, config.RequestTimeout)
assert.Equal(t, 301*time.Second, config.JWTExpireTimeout)
Expand Down
21 changes: 8 additions & 13 deletions pkg/sdk/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ import (
"encoding/pem"
"fmt"
"net"
"net/url"
"testing"
"time"

"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/acceptance/helpers/random"
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/acceptance/testvars"
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/internal/snowflakeenvs"
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/testhelpers"
"github.com/snowflakedb/gosnowflake"
Expand Down Expand Up @@ -96,7 +96,7 @@ func TestProfileConfig(t *testing.T) {
passcode='passcode'
port=1
passcodeinpassword=true
oktaurl='https://example.com'
oktaurl='%[3]s'
clienttimeout=10
jwtclienttimeout=20
logintimeout=30
Expand All @@ -109,8 +109,8 @@ func TestProfileConfig(t *testing.T) {
ocspfailopen=true
token='token'
keepsessionalive=true
privatekey="""%s"""
privatekeypassphrase='%s'
privatekey="""%[1]s"""
privatekeypassphrase='%[2]s'
disabletelemetry=true
validatedefaultparameters=true
clientrequestmfatoken=true
Expand All @@ -123,7 +123,7 @@ func TestProfileConfig(t *testing.T) {
[securityadmin.params]
foo = 'bar'
`, encryptedKey, "password")
`, encryptedKey, "password", testvars.ExampleOktaUrlString)
configPath := testhelpers.TestFile(t, "config", []byte(c))

t.Run("with found profile", func(t *testing.T) {
Expand Down Expand Up @@ -156,7 +156,7 @@ func TestProfileConfig(t *testing.T) {
assert.Equal(t, gosnowflake.AuthTypeJwt, config.Authenticator)
assert.Equal(t, "passcode", config.Passcode)
assert.Equal(t, true, config.PasscodeInPassword)
assert.Equal(t, "https://example.com", config.OktaURL.String())
assert.Equal(t, testvars.ExampleOktaUrlString, config.OktaURL.String())
assert.Equal(t, 10*time.Second, config.ClientTimeout)
assert.Equal(t, 20*time.Second, config.JWTClientTimeout)
assert.Equal(t, 30*time.Second, config.LoginTimeout)
Expand Down Expand Up @@ -199,11 +199,6 @@ func TestProfileConfig(t *testing.T) {
}

func Test_MergeConfig(t *testing.T) {
oktaUrl1, err := url.Parse("https://example1.com")
require.NoError(t, err)
oktaUrl2, err := url.Parse("https://example2.com")
require.NoError(t, err)

config1 := &gosnowflake.Config{
Account: "account1",
User: "user1",
Expand All @@ -221,7 +216,7 @@ func Test_MergeConfig(t *testing.T) {
Authenticator: gosnowflake.AuthTypeSnowflake,
Passcode: "passcode1",
PasscodeInPassword: false,
OktaURL: oktaUrl1,
OktaURL: testvars.ExampleOktaUrl,
LoginTimeout: 1,
RequestTimeout: 1,
JWTExpireTimeout: 1,
Expand Down Expand Up @@ -261,7 +256,7 @@ func Test_MergeConfig(t *testing.T) {
Authenticator: gosnowflake.AuthTypeOAuth,
Passcode: "passcode2",
PasscodeInPassword: true,
OktaURL: oktaUrl2,
OktaURL: testvars.ExampleOktaUrlFromEnv,
LoginTimeout: 2,
RequestTimeout: 2,
JWTExpireTimeout: 2,
Expand Down

0 comments on commit a686409

Please sign in to comment.