pulumi/sdk/go/x/auto/stack_test.go

90 lines
1.9 KiB
Go
Raw Normal View History

2020-07-07 23:25:11 +02:00
package auto
import (
2020-07-17 19:14:30 +02:00
"fmt"
"math/rand"
2020-07-07 23:25:11 +02:00
"path/filepath"
"testing"
"github.com/stretchr/testify/assert"
)
func TestUpBasic(t *testing.T) {
2020-07-17 19:14:30 +02:00
sName := fmt.Sprintf("int_test%d", rangeIn(10000000, 99999999))
ps := ProjectSpec{
2020-07-07 23:25:11 +02:00
Name: "testproj",
SourcePath: filepath.Join(".", "test", "testproj"),
}
2020-07-17 19:14:30 +02:00
ss := StackSpec{
Name: sName,
Project: ps,
2020-07-07 23:25:11 +02:00
Overrides: &StackOverrides{
Config: map[string]string{"bar": "abc"},
Secrets: map[string]string{"buzz": "secret"},
},
}
2020-07-17 19:14:30 +02:00
2020-07-17 19:59:13 +02:00
// initialize
2020-07-17 19:14:30 +02:00
s, err := NewStack(ss)
2020-07-17 19:59:13 +02:00
if err != nil {
t.Errorf("failed to initialize stack, err: %v", err)
t.FailNow()
}
2020-07-17 04:17:07 +02:00
// -- pulumi up --
2020-07-07 23:25:11 +02:00
res, err := s.Up()
if err != nil {
t.Errorf("up failed, err: %v", err)
t.FailNow()
}
assert.Equal(t, 2, len(res.Outputs), "expected two plain outputs")
assert.Equal(t, 1, len(res.SecretOutputs), "expected one secret output")
assert.Equal(t, "foo", res.Outputs["exp_static"])
assert.Equal(t, "abc", res.Outputs["exp_cfg"])
assert.Equal(t, "secret", res.SecretOutputs["exp_secret"])
assert.Equal(t, "update", res.Summary.Kind)
assert.Equal(t, "succeeded", res.Summary.Result)
2020-07-16 17:47:04 +02:00
2020-07-17 04:17:07 +02:00
// -- pulumi preview --
prev, err := s.Preview()
if err != nil {
t.Errorf("preview failed, err: %v", err)
t.FailNow()
}
assert.Equal(t, 1, prev.ChangeSummary["same"])
assert.Equal(t, 1, len(prev.Steps))
// -- pulumi refresh --
ref, err := s.Refresh()
if err != nil {
t.Errorf("refresh failed, err: %v", err)
t.FailNow()
}
assert.Equal(t, "refresh", ref.Summary.Kind)
assert.Equal(t, "succeeded", ref.Summary.Result)
// -- pulumi destroy --
2020-07-16 17:47:04 +02:00
dRes, err := s.Destroy()
if err != nil {
t.Errorf("destroy failed, err: %v", err)
t.FailNow()
}
assert.Equal(t, "destroy", dRes.Summary.Kind)
assert.Equal(t, "succeeded", dRes.Summary.Result)
2020-07-17 03:50:34 +02:00
2020-07-17 04:17:07 +02:00
// -- pulumi stack rm --
2020-07-17 03:50:34 +02:00
err = s.Remove()
assert.Nil(t, err, "failed to remove stack. Resources have leaked.")
2020-07-07 23:25:11 +02:00
}
2020-07-17 19:14:30 +02:00
func rangeIn(low, hi int) int {
return low + rand.Intn(hi-low)
}