@ -1074,6 +1074,119 @@ func TestInstallRun_UnreachableKubeClient(t *testing.T) {
assert . ErrorContains ( t , err , "connection refused" )
}
func TestInstallSetRegistryClient ( t * testing . T ) {
config := actionConfigFixture ( t )
instAction := NewInstall ( config )
registryClient := & registry . Client { }
instAction . SetRegistryClient ( registryClient )
assert . Equal ( t , registryClient , instAction . GetRegistryClient ( ) )
}
func TestInstalLCRDs ( t * testing . T ) {
config := actionConfigFixture ( t )
instAction := NewInstall ( config )
mockFile := common . File {
Name : "crds/foo.yaml" ,
Data : [ ] byte ( "hello" ) ,
}
mockChart := buildChart ( withFile ( mockFile ) )
crdsToInstall := mockChart . CRDObjects ( )
assert . Len ( t , crdsToInstall , 1 )
assert . Equal ( t , crdsToInstall [ 0 ] . File . Data , mockFile . Data )
require . NoError ( t , instAction . installCRDs ( crdsToInstall ) )
}
func TestInstalLCRDs_KubeClient_BuildError ( t * testing . T ) {
config := actionConfigFixture ( t )
failingKubeClient := kubefake . FailingKubeClient { PrintingKubeClient : kubefake . PrintingKubeClient { Out : io . Discard } , DummyResources : nil }
failingKubeClient . BuildError = errors . New ( "build error" )
config . KubeClient = & failingKubeClient
instAction := NewInstall ( config )
mockFile := common . File {
Name : "crds/foo.yaml" ,
Data : [ ] byte ( "hello" ) ,
}
mockChart := buildChart ( withFile ( mockFile ) )
crdsToInstall := mockChart . CRDObjects ( )
require . Error ( t , instAction . installCRDs ( crdsToInstall ) , "failed to install CRD" )
}
func TestInstalLCRDs_KubeClient_CreateError ( t * testing . T ) {
config := actionConfigFixture ( t )
failingKubeClient := kubefake . FailingKubeClient { PrintingKubeClient : kubefake . PrintingKubeClient { Out : io . Discard } , DummyResources : nil }
failingKubeClient . CreateError = errors . New ( "create error" )
config . KubeClient = & failingKubeClient
instAction := NewInstall ( config )
mockFile := common . File {
Name : "crds/foo.yaml" ,
Data : [ ] byte ( "hello" ) ,
}
mockChart := buildChart ( withFile ( mockFile ) )
crdsToInstall := mockChart . CRDObjects ( )
require . Error ( t , instAction . installCRDs ( crdsToInstall ) , "failed to install CRD" )
}
func TestInstalLCRDs_AlreadyExist ( t * testing . T ) {
config := actionConfigFixture ( t )
failingKubeClient := kubefake . FailingKubeClient { PrintingKubeClient : kubefake . PrintingKubeClient { Out : io . Discard } , DummyResources : nil }
mockError := & apierrors . StatusError { ErrStatus : metav1 . Status {
Status : metav1 . StatusFailure ,
Reason : metav1 . StatusReasonAlreadyExists ,
} }
failingKubeClient . CreateError = mockError
config . KubeClient = & failingKubeClient
instAction := NewInstall ( config )
mockFile := common . File {
Name : "crds/foo.yaml" ,
Data : [ ] byte ( "hello" ) ,
}
mockChart := buildChart ( withFile ( mockFile ) )
crdsToInstall := mockChart . CRDObjects ( )
assert . Nil ( t , instAction . installCRDs ( crdsToInstall ) )
}
func TestInstalLCRDs_WaiterError ( t * testing . T ) {
config := actionConfigFixture ( t )
failingKubeClient := kubefake . FailingKubeClient { PrintingKubeClient : kubefake . PrintingKubeClient { Out : io . Discard } , DummyResources : nil }
failingKubeClient . WaitError = errors . New ( "wait error" )
failingKubeClient . BuildDummy = true
config . KubeClient = & failingKubeClient
instAction := NewInstall ( config )
mockFile := common . File {
Name : "crds/foo.yaml" ,
Data : [ ] byte ( "hello" ) ,
}
mockChart := buildChart ( withFile ( mockFile ) )
crdsToInstall := mockChart . CRDObjects ( )
require . Error ( t , instAction . installCRDs ( crdsToInstall ) , "wait error" )
}
func TestCheckDependencies ( t * testing . T ) {
dependency := chart . Dependency { Name : "hello" }
mockChart := buildChart ( withDependency ( ) )
assert . Nil ( t , CheckDependencies ( mockChart , [ ] ci . Dependency { & dependency } ) )
}
func TestCheckDependencies_MissingDependency ( t * testing . T ) {
dependency := chart . Dependency { Name : "missing" }
mockChart := buildChart ( withDependency ( ) )
assert . ErrorContains ( t , CheckDependencies ( mockChart , [ ] ci . Dependency { & dependency } ) , "missing in charts" )
}
func TestInstallCRDs_CheckNilErrors ( t * testing . T ) {
tests := [ ] struct {
name string