pulumi/sdk/go/x/auto/yaml_test.go

131 lines
3 KiB
Go

package auto
import (
"path/filepath"
"testing"
"github.com/pulumi/pulumi/sdk/v2/go/common/workspace"
"github.com/stretchr/testify/assert"
)
func TestParseProject(t *testing.T) {
overrideDesc := "abcdef"
p := Project{
Name: "testproj",
SourcePath: filepath.Join(".", "test", "testproj"),
Overrides: &ProjectOverrides{
Project: &workspace.Project{
Description: &overrideDesc,
},
},
}
s := &Stack{
Name: "int_test",
Project: p,
Overrides: &StackOverrides{
Config: map[string]string{"bar": "abc"},
Secrets: map[string]string{"buzz": "secret"},
},
}
desc := "A minimal Go Pulumi program"
expected := &workspace.Project{
Name: "testproj",
Runtime: workspace.NewProjectRuntimeInfo("go", nil),
Description: &desc,
}
wp, err := parsePulumiProject(s.Project.SourcePath)
assert.NoError(t, err)
assert.Equal(t, expected, wp)
// merge
merged := mergeProjects(wp, p.Overrides.Project)
expMergeRes := &workspace.Project{
Name: "testproj",
Runtime: workspace.NewProjectRuntimeInfo("go", nil),
Description: &overrideDesc,
}
assert.Equal(t, expMergeRes, merged)
}
func TestWriteProject(t *testing.T) {
overrideDesc := "abcdef"
p := Project{
Name: "testproj",
SourcePath: filepath.Join(".", "test", "testproj"),
Overrides: &ProjectOverrides{
Project: &workspace.Project{
Description: &overrideDesc,
},
},
}
s := &Stack{
Name: "int_test",
Project: p,
Overrides: &StackOverrides{
Config: map[string]string{"bar": "abc"},
Secrets: map[string]string{"buzz": "secret"},
},
}
err := s.writeProject()
assert.Nil(t, err)
}
// TODO tests useful for development but not reproducible
// func TestParseStack(t *testing.T) {
// p := Project{
// Name: "testproj",
// SourcePath: filepath.Join(".", "test", "testproj"),
// }
// s := &Stack{
// Name: "int_test",
// Project: p,
// Overrides: &StackOverrides{
// Config: map[string]string{"bar": "abc"},
// Secrets: map[string]string{"buzz": "secret"},
// ProjectStack: &workspace.ProjectStack{
// EncryptedKey: "abc",
// },
// },
// }
// expected := &workspace.ProjectStack{}
// ws, err := parsePulumiStack(s.Project.SourcePath, s.Name)
// assert.NoError(t, err)
// assert.Equal(t, expected, ws)
// // merge
// merged := mergeStacks(ws, s.Overrides.ProjectStack)
// expMergeRes := &workspace.ProjectStack{}
// assert.Equal(t, expMergeRes, merged)
// }
// func TestWriteStack(t *testing.T) {
// overrideDesc := "abcdef"
// p := Project{
// Name: "testproj",
// SourcePath: filepath.Join(".", "test", "testproj"),
// Overrides: &ProjectOverrides{
// Project: &workspace.Project{
// Description: &overrideDesc,
// },
// },
// }
// s := &Stack{
// Name: "int_test",
// Project: p,
// Overrides: &StackOverrides{
// Config: map[string]string{"bar": "abc"},
// Secrets: map[string]string{"buzz": "secret"},
// ProjectStack: &workspace.ProjectStack{
// EncryptedKey: "abc",
// },
// },
// }
// err := s.writeStack()
// assert.Nil(t, err)
// }