Skip to content

Commit

Permalink
Fix tests
Browse files Browse the repository at this point in the history
  • Loading branch information
iwahbe committed Apr 24, 2024
1 parent f3ee128 commit 863b06b
Show file tree
Hide file tree
Showing 6 changed files with 35 additions and 80 deletions.
14 changes: 6 additions & 8 deletions provider/pkg/provider/agent_pool_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,16 +40,15 @@ func TestAgentPool(t *testing.T) {
func() (*pulumiapi.AgentPool, error) { return nil, nil },
)

provider := PulumiServiceAgentPoolResource{
client: mockedClient,
}
provider := PulumiServiceAgentPoolResource{}

req := pulumirpc.ReadRequest{
Id: "org/abc/123",
Urn: "urn:123",
}

resp, err := provider.Read(&req)
resp, err := provider.Read(context.WithValue(context.Background(),
TestClientKey, mockedClient), &req)

assert.NoError(t, err)
assert.Equal(t, resp.Id, "")
Expand All @@ -66,16 +65,15 @@ func TestAgentPool(t *testing.T) {
},
)

provider := PulumiServiceAgentPoolResource{
client: mockedClient,
}
provider := PulumiServiceAgentPoolResource{}

req := pulumirpc.ReadRequest{
Id: "org/abc/123",
Urn: "urn:123",
}

resp, err := provider.Read(&req)
resp, err := provider.Read(context.WithValue(context.Background(),
TestClientKey, mockedClient), &req)

assert.NoError(t, err)
assert.Equal(t, resp.Id, "org/abc/123")
Expand Down
59 changes: 15 additions & 44 deletions provider/pkg/provider/config_test.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package provider

import (
"os"
"context"
"testing"

"github.com/pulumi/pulumi/sdk/v3/go/common/workspace"
Expand All @@ -12,49 +12,21 @@ const (
EnvVarPulumiHome = "PULUMI_HOME"
)

func WithClient[T any](client T) context.Context {
return context.WithValue(context.Background(), TestClientKey, client)
}

func TestGetPulumiAccessToken(t *testing.T) {
wantToken := "pul-1234abcd"

// setEnv sets environment variable and returns a function to reset
// environment variable back to previous value
setEnv := func(envVar, val string) func() {
oldVal := os.Getenv(envVar)
os.Setenv(envVar, val)
return func() {
os.Setenv(envVar, oldVal)
}
}

t.Run("Uses Config Variable", func(t *testing.T) {
defer setEnv(EnvVarPulumiAccessToken, "")()
c := PulumiServiceConfig{
Config: map[string]string{
"accessToken": wantToken,
},
}
gotToken, err := c.getPulumiAccessToken()
assert.NoError(t, err)
assert.Equal(t, wantToken, *gotToken)

})

t.Run("Uses Environment Variable", func(t *testing.T) {
c := PulumiServiceConfig{}
defer setEnv(EnvVarPulumiAccessToken, wantToken)()

gotToken, err := c.getPulumiAccessToken()
assert.NoError(t, err)
assert.Equal(t, wantToken, *gotToken)
})

t.Run("Uses Saved Credential", func(t *testing.T) {
c := PulumiServiceConfig{}
c := Config{}
// ensure env var isn't set
defer setEnv(EnvVarPulumiAccessToken, "")()
t.Setenv(EnvVarPulumiAccessToken, "")

dir := t.TempDir()
// set home directory so that workspace writes to temp dir
defer setEnv(EnvVarPulumiHome, dir)()
t.Setenv(EnvVarPulumiHome, dir)

account := "https://api.pulumi.com"

Expand All @@ -67,23 +39,22 @@ func TestGetPulumiAccessToken(t *testing.T) {
if err != nil {
t.Fatalf("failed to store test credentials: %v", err)
}
gotToken, err := c.getPulumiAccessToken()
err = c.Configure(context.Background())
assert.NoError(t, err)
assert.Equal(t, wantToken, *gotToken)
assert.Equal(t, wantToken, c.AccessToken)
})

t.Run("Returns Error", func(t *testing.T) {
c := PulumiServiceConfig{}
c := Config{}

// point PULUMI_HOME to empty dir so there's no credentials available
dir := t.TempDir()
defer setEnv(EnvVarPulumiHome, dir)()
t.Setenv(EnvVarPulumiHome, dir)
// explicitly unset access token variable
defer setEnv(EnvVarPulumiAccessToken, "")()

gotToken, err := c.getPulumiAccessToken()
t.Setenv(EnvVarPulumiAccessToken, "")
err := c.Configure(context.Background())

assert.Nil(t, gotToken)
assert.Empty(t, c.AccessToken)
assert.Equal(t, ErrAccessTokenNotFound, err)
})
}
12 changes: 4 additions & 8 deletions provider/pkg/provider/deployment_setting_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,16 +39,14 @@ func TestDeploymentSettings(t *testing.T) {
func() (*pulumiapi.DeploymentSettings, error) { return nil, nil },
)

provider := PulumiServiceDeploymentSettingsResource{
client: mockedClient,
}
provider := PulumiServiceDeploymentSettingsResource{}

req := pulumirpc.ReadRequest{
Id: "abc/def/123",
Urn: "urn:123",
}

resp, err := provider.Read(&req)
resp, err := provider.Read(WithClient(mockedClient), &req)

assert.NoError(t, err)
assert.Equal(t, resp.Id, "")
Expand All @@ -67,16 +65,14 @@ func TestDeploymentSettings(t *testing.T) {
},
)

provider := PulumiServiceDeploymentSettingsResource{
client: mockedClient,
}
provider := PulumiServiceDeploymentSettingsResource{}

req := pulumirpc.ReadRequest{
Id: "abc/def/123",
Urn: "urn:123",
}

resp, err := provider.Read(&req)
resp, err := provider.Read(WithClient(mockedClient), &req)

assert.NoError(t, err)
assert.Equal(t, resp.Id, "abc/def/123")
Expand Down
6 changes: 2 additions & 4 deletions provider/pkg/provider/stack_tags_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,7 @@ func TestStackTagsUpdate(t *testing.T) {
t.Fatal(err)
}

st := &PulumiServiceStackTagResource{
client: apiClient,
}
st := &PulumiServiceStackTagResource{}

input := PulumiServiceStackTagInput{
Organization: "org",
Expand All @@ -49,7 +47,7 @@ func TestStackTagsUpdate(t *testing.T) {
News: properties,
}

_, err = st.Update(&upReq)
_, err = st.Update(WithClient(apiClient), &upReq)
assert.ErrorContains(t, err, "unexpected call to update, expected create to be called instead")
})

Expand Down
12 changes: 4 additions & 8 deletions provider/pkg/provider/team_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,16 +54,14 @@ func TestTeam(t *testing.T) {
func() (*pulumiapi.Team, error) { return nil, nil },
)

provider := PulumiServiceTeamResource{
client: mockedClient,
}
provider := PulumiServiceTeamResource{}

req := pulumirpc.ReadRequest{
Id: "abc/123",
Urn: "urn:123",
}

resp, err := provider.Read(&req)
resp, err := provider.Read(WithClient(mockedClient), &req)

assert.NoError(t, err)
assert.Equal(t, resp.Id, "")
Expand All @@ -86,16 +84,14 @@ func TestTeam(t *testing.T) {
},
)

provider := PulumiServiceTeamResource{
client: mockedClient,
}
provider := PulumiServiceTeamResource{}

req := pulumirpc.ReadRequest{
Id: "abc/123",
Urn: "urn:123",
}

resp, err := provider.Read(&req)
resp, err := provider.Read(WithClient(mockedClient), &req)

assert.NoError(t, err)
assert.Equal(t, resp.Id, "abc/123")
Expand Down
12 changes: 4 additions & 8 deletions provider/pkg/provider/webhook_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,16 +47,14 @@ func TestWebhook(t *testing.T) {
func() (*pulumiapi.Webhook, error) { return nil, nil },
)

provider := PulumiServiceWebhookResource{
client: mockedClient,
}
provider := PulumiServiceWebhookResource{}

req := pulumirpc.ReadRequest{
Id: "abc/def/ghi/123",
Urn: "urn:123",
}

resp, err := provider.Read(&req)
resp, err := provider.Read(WithClient(mockedClient), &req)

assert.NoError(t, err)
assert.Equal(t, resp.Id, "")
Expand All @@ -75,16 +73,14 @@ func TestWebhook(t *testing.T) {
},
)

provider := PulumiServiceWebhookResource{
client: mockedClient,
}
provider := PulumiServiceWebhookResource{}

req := pulumirpc.ReadRequest{
Id: "abc/def/ghi/123",
Urn: "urn:123",
}

resp, err := provider.Read(&req)
resp, err := provider.Read(WithClient(mockedClient), &req)

assert.NoError(t, err)
assert.Equal(t, resp.Id, "abc/def/ghi/123")
Expand Down

0 comments on commit 863b06b

Please sign in to comment.