|
|
|
|
@ -25,6 +25,7 @@ import (
|
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
|
|
|
|
|
|
ci "helm.sh/helm/v4/pkg/chart"
|
|
|
|
|
chart "helm.sh/helm/v4/pkg/chart/v2"
|
|
|
|
|
kubefake "helm.sh/helm/v4/pkg/kube/fake"
|
|
|
|
|
release "helm.sh/helm/v4/pkg/release/v1"
|
|
|
|
|
@ -123,13 +124,18 @@ func TestGetMetadata_Run_WithDependencies(t *testing.T) {
|
|
|
|
|
result, err := client.Run(releaseName)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
|
|
|
|
|
dep0, err := ci.NewDependencyAccessor(result.Dependencies[0])
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dep1, err := ci.NewDependencyAccessor(result.Dependencies[1])
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
|
|
|
|
|
assert.Equal(t, releaseName, result.Name)
|
|
|
|
|
assert.Equal(t, "test-chart", result.Chart)
|
|
|
|
|
assert.Equal(t, "1.0.0", result.Version)
|
|
|
|
|
assert.Equal(t, dependencies, result.Dependencies)
|
|
|
|
|
assert.Equal(t, convertDeps(dependencies), result.Dependencies)
|
|
|
|
|
assert.Len(t, result.Dependencies, 2)
|
|
|
|
|
assert.Equal(t, "mysql", result.Dependencies[0].Name)
|
|
|
|
|
assert.Equal(t, "redis", result.Dependencies[1].Name)
|
|
|
|
|
assert.Equal(t, "mysql", dep0.Name())
|
|
|
|
|
assert.Equal(t, "redis", dep1.Name())
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestGetMetadata_Run_WithDependenciesAliases(t *testing.T) {
|
|
|
|
|
@ -177,15 +183,20 @@ func TestGetMetadata_Run_WithDependenciesAliases(t *testing.T) {
|
|
|
|
|
result, err := client.Run(releaseName)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
|
|
|
|
|
dep0, err := ci.NewDependencyAccessor(result.Dependencies[0])
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dep1, err := ci.NewDependencyAccessor(result.Dependencies[1])
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
|
|
|
|
|
assert.Equal(t, releaseName, result.Name)
|
|
|
|
|
assert.Equal(t, "test-chart", result.Chart)
|
|
|
|
|
assert.Equal(t, "1.0.0", result.Version)
|
|
|
|
|
assert.Equal(t, dependencies, result.Dependencies)
|
|
|
|
|
assert.Equal(t, convertDeps(dependencies), result.Dependencies)
|
|
|
|
|
assert.Len(t, result.Dependencies, 2)
|
|
|
|
|
assert.Equal(t, "mysql", result.Dependencies[0].Name)
|
|
|
|
|
assert.Equal(t, "database", result.Dependencies[0].Alias)
|
|
|
|
|
assert.Equal(t, "redis", result.Dependencies[1].Name)
|
|
|
|
|
assert.Equal(t, "cache", result.Dependencies[1].Alias)
|
|
|
|
|
assert.Equal(t, "mysql", dep0.Name())
|
|
|
|
|
assert.Equal(t, "database", dep0.Alias())
|
|
|
|
|
assert.Equal(t, "redis", dep1.Name())
|
|
|
|
|
assert.Equal(t, "cache", dep1.Alias())
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestGetMetadata_Run_WithMixedDependencies(t *testing.T) {
|
|
|
|
|
@ -243,23 +254,32 @@ func TestGetMetadata_Run_WithMixedDependencies(t *testing.T) {
|
|
|
|
|
result, err := client.Run(releaseName)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
|
|
|
|
|
dep0, err := ci.NewDependencyAccessor(result.Dependencies[0])
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dep1, err := ci.NewDependencyAccessor(result.Dependencies[1])
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dep2, err := ci.NewDependencyAccessor(result.Dependencies[2])
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dep3, err := ci.NewDependencyAccessor(result.Dependencies[3])
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
|
|
|
|
|
assert.Equal(t, releaseName, result.Name)
|
|
|
|
|
assert.Equal(t, "test-chart", result.Chart)
|
|
|
|
|
assert.Equal(t, "1.0.0", result.Version)
|
|
|
|
|
assert.Equal(t, dependencies, result.Dependencies)
|
|
|
|
|
assert.Equal(t, convertDeps(dependencies), result.Dependencies)
|
|
|
|
|
assert.Len(t, result.Dependencies, 4)
|
|
|
|
|
|
|
|
|
|
// Verify dependencies with aliases
|
|
|
|
|
assert.Equal(t, "mysql", result.Dependencies[0].Name)
|
|
|
|
|
assert.Equal(t, "database", result.Dependencies[0].Alias)
|
|
|
|
|
assert.Equal(t, "redis", result.Dependencies[2].Name)
|
|
|
|
|
assert.Equal(t, "cache", result.Dependencies[2].Alias)
|
|
|
|
|
assert.Equal(t, "mysql", dep0.Name())
|
|
|
|
|
assert.Equal(t, "database", dep0.Alias())
|
|
|
|
|
assert.Equal(t, "redis", dep2.Name())
|
|
|
|
|
assert.Equal(t, "cache", dep2.Alias())
|
|
|
|
|
|
|
|
|
|
// Verify dependencies without aliases
|
|
|
|
|
assert.Equal(t, "nginx", result.Dependencies[1].Name)
|
|
|
|
|
assert.Equal(t, "", result.Dependencies[1].Alias)
|
|
|
|
|
assert.Equal(t, "postgresql", result.Dependencies[3].Name)
|
|
|
|
|
assert.Equal(t, "", result.Dependencies[3].Alias)
|
|
|
|
|
assert.Equal(t, "nginx", dep1.Name())
|
|
|
|
|
assert.Equal(t, "", dep1.Alias())
|
|
|
|
|
assert.Equal(t, "postgresql", dep3.Name())
|
|
|
|
|
assert.Equal(t, "", dep3.Alias())
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestGetMetadata_Run_WithAnnotations(t *testing.T) {
|
|
|
|
|
@ -515,8 +535,9 @@ func TestMetadata_FormattedDepNames(t *testing.T) {
|
|
|
|
|
|
|
|
|
|
for _, tc := range testCases {
|
|
|
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
|
|
|
deps := convertDeps(tc.dependencies)
|
|
|
|
|
metadata := &Metadata{
|
|
|
|
|
Dependencies: tc.dependencies,
|
|
|
|
|
Dependencies: deps,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
result := metadata.FormattedDepNames()
|
|
|
|
|
@ -525,6 +546,14 @@ func TestMetadata_FormattedDepNames(t *testing.T) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func convertDeps(deps []*chart.Dependency) []ci.Dependency {
|
|
|
|
|
var newDeps = make([]ci.Dependency, len(deps))
|
|
|
|
|
for i, c := range deps {
|
|
|
|
|
newDeps[i] = c
|
|
|
|
|
}
|
|
|
|
|
return newDeps
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestMetadata_FormattedDepNames_WithComplexDependencies(t *testing.T) {
|
|
|
|
|
dependencies := []*chart.Dependency{
|
|
|
|
|
{
|
|
|
|
|
@ -546,8 +575,9 @@ func TestMetadata_FormattedDepNames_WithComplexDependencies(t *testing.T) {
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
deps := convertDeps(dependencies)
|
|
|
|
|
metadata := &Metadata{
|
|
|
|
|
Dependencies: dependencies,
|
|
|
|
|
Dependencies: deps,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
result := metadata.FormattedDepNames()
|
|
|
|
|
@ -597,8 +627,9 @@ func TestMetadata_FormattedDepNames_WithAliases(t *testing.T) {
|
|
|
|
|
|
|
|
|
|
for _, tc := range testCases {
|
|
|
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
|
|
|
deps := convertDeps(tc.dependencies)
|
|
|
|
|
metadata := &Metadata{
|
|
|
|
|
Dependencies: tc.dependencies,
|
|
|
|
|
Dependencies: deps,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
result := metadata.FormattedDepNames()
|
|
|
|
|
|