Skip to content

Commit ad91ae2

Browse files
author
Derek Rada
committed
fixed tests handled special case
1 parent d86dc19 commit ad91ae2

File tree

2 files changed

+16
-9
lines changed

2 files changed

+16
-9
lines changed

pkg/provider/provider.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -326,6 +326,12 @@ func DSN(
326326
Role: role,
327327
}
328328

329+
// If host is set trust it and do not use the region value
330+
if host != "" {
331+
config.Region = ""
332+
config.Host = host
333+
}
334+
329335
if privateKeyPath != "" {
330336
privateKeyBytes, err := ReadPrivateKeyFile(privateKeyPath)
331337
if err != nil {
@@ -354,10 +360,6 @@ func DSN(
354360
} else {
355361
return "", errors.New("no authentication method provided")
356362
}
357-
358-
if host != "" {
359-
config.Host = host
360-
}
361363

362364
return gosnowflake.DSN(&config)
363365
}

pkg/provider/provider_test.go

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,22 +33,27 @@ func TestDSN(t *testing.T) {
3333
password string
3434
browserAuth bool
3535
region,
36-
role string
36+
role,
37+
host string
3738
}
3839
tests := []struct {
3940
name string
4041
args args
4142
want string
4243
wantErr bool
4344
}{
44-
{"simple", args{"acct", "user", "pass", false, "region", "role"},
45+
{"simple", args{"acct", "user", "pass", false, "region", "role", ""},
4546
"user:pass@acct.region.snowflakecomputing.com:443?ocspFailOpen=true&region=region&role=role&validateDefaultParameters=true", false},
46-
{"us-west-2 special case", args{"acct2", "user2", "pass2", false, "us-west-2", "role2"},
47+
{"us-west-2 special case", args{"acct2", "user2", "pass2", false, "us-west-2", "role2", ""},
4748
"user2:pass2@acct2.snowflakecomputing.com:443?ocspFailOpen=true&role=role2&validateDefaultParameters=true", false},
49+
{"customhostwregion", args{"acct3", "user3", "pass3", false, "", "role3", "zha123.us-east-1.privatelink.snowflakecomputing.com"},
50+
"user3:pass3@zha123.us-east-1.privatelink.snowflakecomputing.com:443?account=acct3&ocspFailOpen=true&role=role3&validateDefaultParameters=true", false},
51+
{"customhostignoreregion", args{"acct4", "user4", "pass4", false, "fakeregion", "role4", "zha1234.us-east-1.privatelink.snowflakecomputing.com"},
52+
"user4:pass4@zha1234.us-east-1.privatelink.snowflakecomputing.com:443?account=acct4&ocspFailOpen=true&role=role4&validateDefaultParameters=true", false},
4853
}
4954
for _, tt := range tests {
5055
t.Run(tt.name, func(t *testing.T) {
51-
got, err := provider.DSN(tt.args.account, tt.args.user, tt.args.password, tt.args.browserAuth, "", "", "", "", tt.args.region, tt.args.role)
56+
got, err := provider.DSN(tt.args.account, tt.args.user, tt.args.password, tt.args.browserAuth, "", "", "", "", tt.args.region, tt.args.role, tt.args.host)
5257
if (err != nil) != tt.wantErr {
5358
t.Errorf("DSN() error = %v, wantErr %v", err, tt.wantErr)
5459
return
@@ -84,7 +89,7 @@ func TestOAuthDSN(t *testing.T) {
8489
}
8590
for _, tt := range tests {
8691
t.Run(tt.name, func(t *testing.T) {
87-
got, err := provider.DSN(tt.args.account, tt.args.user, "", false, "", "", "", tt.args.oauthAccessToken, tt.args.region, tt.args.role)
92+
got, err := provider.DSN(tt.args.account, tt.args.user, "", false, "", "", "", tt.args.oauthAccessToken, tt.args.region, tt.args.role, "")
8893

8994
if (err != nil) != tt.wantErr {
9095
t.Errorf("DSN() error = %v, dsn = %v, wantErr %v", err, got, tt.wantErr)

0 commit comments

Comments
 (0)