@ -22,9 +22,11 @@ import (
"os"
"os"
"path/filepath"
"path/filepath"
"reflect"
"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 +92,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 +153,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 +198,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 +214,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 {
assert . 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 . expectErro r)
assert. Error ( t , er r)
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 +259,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 +270,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 +356,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 . wantE rr)
assert. Error ( t , e rr)
return
return
}
}
if ! tt . wantErr && ! reflect . DeepEqual ( got , tt . expected ) {
assert . NoError ( t , err )
t . Errorf ( "MergeValues() = %v, want %v" , got , tt . expected )
assert . True ( t , reflect . DeepEqual ( got , tt . expected ) , "MergeValues() = %v, want %v" , got , tt . expected )
}
} )
} )
}
}
}
}