87 lines
2.4 KiB
Go
87 lines
2.4 KiB
Go
//
|
|
// Copyright (c) 2019-2023 Red Hat, Inc.
|
|
// This program and the accompanying materials are made
|
|
// available under the terms of the Eclipse Public License 2.0
|
|
// which is available at https://www.eclipse.org/legal/epl-2.0/
|
|
//
|
|
// SPDX-License-Identifier: EPL-2.0
|
|
//
|
|
// Contributors:
|
|
// Red Hat, Inc. - initial API and implementation
|
|
//
|
|
|
|
package deploy
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
|
|
defaults "github.com/eclipse-che/che-operator/pkg/common/operator-defaults"
|
|
|
|
chev2 "github.com/eclipse-che/che-operator/api/v2"
|
|
)
|
|
|
|
func TestCorrectImageName(t *testing.T) {
|
|
testCases := map[string]string{
|
|
"docker.io/eclipse/my-operator:latest": "my-operator:latest",
|
|
"eclipse/my-operator:7.1.0": "my-operator:7.1.0",
|
|
"my-operator:7.2.0": "my-operator:7.2.0",
|
|
}
|
|
for k, v := range testCases {
|
|
t.Run(k, func(*testing.T) {
|
|
actual := defaults.GetImageNameFromFullImage(k)
|
|
if actual != v {
|
|
t.Errorf("Expected %s but was %s", v, actual)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestCorrectAirGapPatchedImage(t *testing.T) {
|
|
type testcase struct {
|
|
image string
|
|
expected string
|
|
cr *chev2.CheCluster
|
|
}
|
|
|
|
var (
|
|
airGapRegistryHostname = "myregistry.org"
|
|
airGapRegistryOrganization = "myorg"
|
|
)
|
|
|
|
upstream := &chev2.CheCluster{}
|
|
airGapUpstream := &chev2.CheCluster{
|
|
Spec: chev2.CheClusterSpec{
|
|
ContainerRegistry: chev2.CheClusterContainerRegistry{
|
|
Hostname: airGapRegistryHostname,
|
|
Organization: airGapRegistryOrganization,
|
|
},
|
|
},
|
|
}
|
|
upstreamOnlyOrg := &chev2.CheCluster{
|
|
Spec: chev2.CheClusterSpec{
|
|
ContainerRegistry: chev2.CheClusterContainerRegistry{
|
|
Organization: airGapRegistryOrganization,
|
|
},
|
|
},
|
|
}
|
|
|
|
testCases := map[string]testcase{
|
|
"default che-server": {image: "quay.io/eclipse/che-server:next", expected: "quay.io/eclipse/che-server:next", cr: upstream},
|
|
"airgap che-server": {image: "quay.io/eclipse/che-server:next", expected: "myregistry.org/myorg/che-server:next", cr: airGapUpstream},
|
|
"with only the org changed": {image: "quay.io/eclipse/che-server:next", expected: "quay.io/myorg/che-server:next", cr: upstreamOnlyOrg},
|
|
}
|
|
for name, tc := range testCases {
|
|
t.Run(name, func(*testing.T) {
|
|
actual := defaults.PatchDefaultImageName(tc.cr, tc.image)
|
|
if actual != tc.expected {
|
|
t.Errorf("Expected %s but was %s", tc.expected, actual)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func makeAirGapImagePath(hostname, org, nameAndTag string) string {
|
|
return fmt.Sprintf("%s/%s/%s", hostname, org, nameAndTag)
|
|
}
|