|
|
|
@ -21,10 +21,11 @@ import (
|
|
|
|
"errors"
|
|
|
|
"errors"
|
|
|
|
"os"
|
|
|
|
"os"
|
|
|
|
"path/filepath"
|
|
|
|
"path/filepath"
|
|
|
|
"reflect"
|
|
|
|
|
|
|
|
"strings"
|
|
|
|
|
|
|
|
"testing"
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
|
|
|
|
|
|
|
|
"helm.sh/helm/v4/pkg/getter"
|
|
|
|
"helm.sh/helm/v4/pkg/getter"
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
@ -90,10 +91,7 @@ func TestReadFile(t *testing.T) {
|
|
|
|
tmpDir := t.TempDir()
|
|
|
|
tmpDir := t.TempDir()
|
|
|
|
filePath := filepath.Join(tmpDir, "test.txt")
|
|
|
|
filePath := filepath.Join(tmpDir, "test.txt")
|
|
|
|
content := []byte("local file content")
|
|
|
|
content := []byte("local file content")
|
|
|
|
err := os.WriteFile(filePath, content, 0644)
|
|
|
|
require.NoError(t, os.WriteFile(filePath, content, 0644))
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
t.Fatal(err)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return filePath, func() {} // cleanup handled by t.TempDir()
|
|
|
|
return filePath, func() {} // cleanup handled by t.TempDir()
|
|
|
|
},
|
|
|
|
},
|
|
|
|
expectError: false,
|
|
|
|
expectError: false,
|
|
|
|
@ -154,10 +152,7 @@ func TestReadFile(t *testing.T) {
|
|
|
|
fileName := "ftp_file.txt" // Valid filename for filesystem
|
|
|
|
fileName := "ftp_file.txt" // Valid filename for filesystem
|
|
|
|
filePath := filepath.Join(tmpDir, fileName)
|
|
|
|
filePath := filepath.Join(tmpDir, fileName)
|
|
|
|
content := []byte("local fallback content")
|
|
|
|
content := []byte("local fallback content")
|
|
|
|
err := os.WriteFile(filePath, content, 0644)
|
|
|
|
require.NoError(t, os.WriteFile(filePath, content, 0644))
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
t.Fatal(err)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return filePath, func() {}
|
|
|
|
return filePath, func() {}
|
|
|
|
},
|
|
|
|
},
|
|
|
|
expectError: false,
|
|
|
|
expectError: false,
|
|
|
|
@ -202,9 +197,7 @@ func TestReadFile(t *testing.T) {
|
|
|
|
|
|
|
|
|
|
|
|
// Create a pipe for stdin
|
|
|
|
// Create a pipe for stdin
|
|
|
|
r, w, err := os.Pipe()
|
|
|
|
r, w, err := os.Pipe()
|
|
|
|
if err != nil {
|
|
|
|
require.NoError(t, err)
|
|
|
|
t.Fatal(err)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
defer r.Close()
|
|
|
|
defer r.Close()
|
|
|
|
defer w.Close()
|
|
|
|
defer w.Close()
|
|
|
|
|
|
|
|
|
|
|
|
@ -220,28 +213,21 @@ func TestReadFile(t *testing.T) {
|
|
|
|
|
|
|
|
|
|
|
|
// Test the function
|
|
|
|
// Test the function
|
|
|
|
got, err := readFile(actualFilePath, tt.providers)
|
|
|
|
got, err := readFile(actualFilePath, tt.providers)
|
|
|
|
if err != nil {
|
|
|
|
require.NoError(t, err, "readFile() expected no error for stdin")
|
|
|
|
t.Errorf("readFile() error = %v, expected no error for stdin", err)
|
|
|
|
assert.Equal(t, testData, got)
|
|
|
|
return
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if !bytes.Equal(got, testData) {
|
|
|
|
|
|
|
|
t.Errorf("readFile() = %v, want %v", got, testData)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return
|
|
|
|
return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Regular test cases
|
|
|
|
// Regular test cases
|
|
|
|
got, err := readFile(actualFilePath, tt.providers)
|
|
|
|
got, err := readFile(actualFilePath, tt.providers)
|
|
|
|
if (err != nil) != tt.expectError {
|
|
|
|
if tt.expectError {
|
|
|
|
t.Errorf("readFile() error = %v, expectError %v", err, tt.expectError)
|
|
|
|
assert.Error(t, err)
|
|
|
|
return
|
|
|
|
return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
|
|
|
|
|
|
|
if !tt.expectError && tt.expectedData != nil {
|
|
|
|
if tt.expectedData != nil {
|
|
|
|
if !bytes.Equal(got, tt.expectedData) {
|
|
|
|
assert.Equal(t, tt.expectedData, got)
|
|
|
|
t.Errorf("readFile() = %v, want %v", got, tt.expectedData)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -272,13 +258,8 @@ func TestReadFileErrorMessages(t *testing.T) {
|
|
|
|
for _, tt := range tests {
|
|
|
|
for _, tt := range tests {
|
|
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
|
|
_, err := readFile(tt.filePath, tt.providers)
|
|
|
|
_, err := readFile(tt.filePath, tt.providers)
|
|
|
|
if err == nil {
|
|
|
|
require.Error(t, err)
|
|
|
|
t.Errorf("readFile() expected error containing %q, got nil", tt.wantErr)
|
|
|
|
assert.Contains(t, err.Error(), tt.wantErr)
|
|
|
|
return
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if !strings.Contains(err.Error(), tt.wantErr) {
|
|
|
|
|
|
|
|
t.Errorf("readFile() error = %v, want error containing %q", err, tt.wantErr)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -288,9 +269,7 @@ func TestReadFileOriginal(t *testing.T) {
|
|
|
|
var p getter.Providers
|
|
|
|
var p getter.Providers
|
|
|
|
filePath := "%a.txt"
|
|
|
|
filePath := "%a.txt"
|
|
|
|
_, err := readFile(filePath, p)
|
|
|
|
_, err := readFile(filePath, p)
|
|
|
|
if err == nil {
|
|
|
|
assert.Error(t, err, "Expected error when has special strings")
|
|
|
|
t.Error("Expected error when has special strings")
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func TestMergeValuesCLI(t *testing.T) {
|
|
|
|
func TestMergeValuesCLI(t *testing.T) {
|
|
|
|
@ -376,13 +355,12 @@ func TestMergeValuesCLI(t *testing.T) {
|
|
|
|
for _, tt := range tests {
|
|
|
|
for _, tt := range tests {
|
|
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
|
|
got, err := tt.opts.MergeValues(getter.Providers{})
|
|
|
|
got, err := tt.opts.MergeValues(getter.Providers{})
|
|
|
|
if (err != nil) != tt.wantErr {
|
|
|
|
if tt.wantErr {
|
|
|
|
t.Errorf("MergeValues() error = %v, wantErr %v", err, tt.wantErr)
|
|
|
|
assert.Error(t, err)
|
|
|
|
return
|
|
|
|
return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if !tt.wantErr && !reflect.DeepEqual(got, tt.expected) {
|
|
|
|
require.NoError(t, err)
|
|
|
|
t.Errorf("MergeValues() = %v, want %v", got, tt.expected)
|
|
|
|
assert.Equal(t, tt.expected, got)
|
|
|
|
}
|
|
|
|
|
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|