131 lines
3 KiB
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)
|
|
// }
|