require.IsType(t,&VCSInstaller{},i,"expected a VCSInstaller")
iferr:=Install(i);err==nil{
t.Fatal("expected error for version does not exists, got none")
}elseifstrings.Contains(err.Error(),"Could not resolve host: github.com"){
err=Install(i)
require.Error(t,err,"expected error for version does not exists, got none")
ifstrings.Contains(err.Error(),"Could not resolve host: github.com"){
t.Skip("Unable to run test without Internet access")
}else{
require.EqualErrorf(t,err,fmt.Sprintf("requested version %q does not exist for plugin %q",version,source),"expected error for version does not exists")
}
require.EqualErrorf(t,err,fmt.Sprintf("requested version %q does not exist for plugin %q",version,source),"expected error for version does not exists")
require.EqualError(t,err,`invalid ownership metadata; label validation error: missing key "app.kubernetes.io/managed-by": must be set to "Helm"; annotation validation error: missing key "meta.helm.sh/release-name": must be set to "rel-a"; annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "ns-a"`)
require.EqualError(t,checkOwnership(deployFoo.Object,"rel-a","ns-a"),`invalid ownership metadata; label validation error: missing key "app.kubernetes.io/managed-by": must be set to "Helm"; annotation validation error: missing key "meta.helm.sh/release-name": must be set to "rel-a"; annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "ns-a"`)
// Set managed by label and verify annotation error message
require.EqualError(t,err,`invalid ownership metadata; annotation validation error: missing key "meta.helm.sh/release-name": must be set to "rel-a"; annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "ns-a"`)
require.EqualError(t,checkOwnership(deployFoo.Object,"rel-a","ns-a"),`invalid ownership metadata; annotation validation error: missing key "meta.helm.sh/release-name": must be set to "rel-a"; annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "ns-a"`)
// Set only the release name annotation and verify missing release namespace error message
require.EqualError(t,err,`invalid ownership metadata; annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "ns-a"`)
require.EqualError(t,checkOwnership(deployFoo.Object,"rel-a","ns-a"),`invalid ownership metadata; annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "ns-a"`)
// Set both release name and namespace annotations and verify no ownership errors
require.EqualError(t,err,`invalid ownership metadata; annotation validation error: key "meta.helm.sh/release-name" must equal "rel-b": current value is "rel-a"`)
require.EqualError(t,checkOwnership(deployFoo.Object,"rel-b","ns-a"),`invalid ownership metadata; annotation validation error: key "meta.helm.sh/release-name" must equal "rel-b": current value is "rel-a"`)
// Verify ownership error for wrong release namespace
require.EqualError(t,err,`invalid ownership metadata; annotation validation error: key "meta.helm.sh/release-namespace" must equal "ns-b": current value is "ns-a"`)
require.EqualError(t,checkOwnership(deployFoo.Object,"rel-a","ns-b"),`invalid ownership metadata; annotation validation error: key "meta.helm.sh/release-namespace" must equal "ns-b": current value is "ns-a"`)
assert.EqualError(t,err,`invalid ownership metadata; label validation error: key "app.kubernetes.io/managed-by" must equal "Helm": current value is "helm"`)
assert.EqualError(t,checkOwnership(deployFoo.Object,"rel-a","ns-a"),`invalid ownership metadata; label validation error: key "app.kubernetes.io/managed-by" must equal "Helm": current value is "helm"`)
assert.Equal(t,"this feature has been marked as experimental and is not enabled by default. Please set HELM_EXPERIMENTAL_FEATURE=1 in your environment to use this feature",g.Error().Error())
assert.EqualError(t,g.Error(),"this feature has been marked as experimental and is not enabled by default. Please set HELM_EXPERIMENTAL_FEATURE=1 in your environment to use this feature")
require.True(t,ok,"expected NewOCIGetter to produce an *OCIGetter")
assert.Equal(t,"I",og.opts.username,"Expected NewOCIGetter to contain %q as the username, got %q","I",og.opts.username)
assert.Equal(t,"Am",og.opts.password,"Expected NewOCIGetter to contain %q as the password, got %q","Am",og.opts.password)
assert.Equal(t,pub,og.opts.certFile,"Expected NewOCIGetter to contain %q as the public key file, got %q",pub,og.opts.certFile)
assert.Equal(t,priv,og.opts.keyFile,"Expected NewOCIGetter to contain %q as the private key file, got %q",priv,og.opts.keyFile)
assert.Equal(t,ca,og.opts.caFile,"Expected NewOCIGetter to contain %q as the CA file, got %q",ca,og.opts.caFile)
assert.Equal(t,timeout,og.opts.timeout,"Expected NewOCIGetter to contain %s as Timeout flag, got %s",timeout,og.opts.timeout)
assert.Equal(t,transport,og.opts.transport,"Expected NewOCIGetter to contain %p as Transport, got %p",transport,og.opts.transport)
assert.Equal(t,plainHTTP,og.opts.plainHTTP,"Expected NewOCIGetter to have plainHTTP as %t, got %t",plainHTTP,og.opts.plainHTTP)
assert.Equal(t,insecureSkipVerifyTLS,og.opts.insecureSkipVerifyTLS,"Expected NewOCIGetter to have insecureSkipVerifyTLS as %t, got %t",insecureSkipVerifyTLS,og.opts.insecureSkipVerifyTLS)
// Test if setting registryClient is being passed to the ops
require.True(t,ok,"expected NewOCIGetter to produce an *OCIGetter")
assert.Equal(t,registryClient,og.opts.registryClient,"Expected NewOCIGetter to contain %p as RegistryClient, got %p",registryClient,og.opts.registryClient)
require.NoErrorf(t,c.Wait(resources,time.Second*30),"expected wait without error")
assert.GreaterOrEqualf(t,time.Since(*created),time.Second*5,"expected to wait at least 5 seconds before ready status was detected, but got %s",time.Since(*created))
// versions of Darwin do not. As there are people developing Helm using both old and new versions of Darwin we test
// for both messages.
ifruntime.GOOS=="darwin"{
if!strings.Contains(err.Error(),"x509: “Acme Co” certificate is not trusted")&&!strings.Contains(err.Error(),"x509: certificate signed by unknown authority"){
t.Errorf("Expected TLS error for function FindChartInAuthAndTLSAndPassRepoURL not found, but got a different error (%v)",err)
}
require.Error(t,err)
assert.True(t,strings.Contains(err.Error(),"x509: “Acme Co” certificate is not trusted")||strings.Contains(err.Error(),"x509: certificate signed by unknown authority"),"Expected TLS error for function FindChartInAuthAndTLSAndPassRepoURL not found, but got a different error (%v)",err)
}else{
assert.ErrorContainsf(t,err,"x509: certificate signed by unknown authority","Expected TLS error for function FindChartInAuthAndTLSAndPassRepoURL not found, but got a different error")
require.Error(t,err,"Expected error for bad chart URL, but did not get any errors")
require.ErrorContainsf(t,err,`looks like "http://someserver/something" is not a valid chart repository or cannot be reached`,"Expected error for bad chart URL, but got a different error")
require.Error(t,err,"Expected error for chart not found, but did not get any errors")
require.EqualError(t,err,`chart "nginx1" version "0.1.0" not found in `+srv.URL+` repository`,"Expected error for chart not found, but got a different error")