|
5 | 5 |
|
6 | 6 | "github.com/stretchr/testify/assert"
|
7 | 7 | "github.com/stretchr/testify/require"
|
| 8 | + corev1 "k8s.io/api/core/v1" |
| 9 | + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" |
8 | 10 | )
|
9 | 11 |
|
10 | 12 | func Test_compareDistributionConditionalToActual(t *testing.T) {
|
@@ -167,3 +169,48 @@ func Test_mustNormalizeDistributionName(t *testing.T) {
|
167 | 169 | })
|
168 | 170 | }
|
169 | 171 | }
|
| 172 | + |
| 173 | +func TestParseNodesForProviders(t *testing.T) { |
| 174 | + tests := []struct { |
| 175 | + name string |
| 176 | + nodes []corev1.Node |
| 177 | + wantProviders providers |
| 178 | + wantProviderString string |
| 179 | + }{ |
| 180 | + { |
| 181 | + name: "embedded-cluster", |
| 182 | + nodes: []corev1.Node{ |
| 183 | + { |
| 184 | + ObjectMeta: metav1.ObjectMeta{ |
| 185 | + Name: "embedded-cluster", |
| 186 | + Labels: map[string]string{ |
| 187 | + "beta.kubernetes.io/arch": "amd64", |
| 188 | + "beta.kubernetes.io/os": "linux", |
| 189 | + "kots.io/embedded-cluster-role": "total-1", |
| 190 | + "kots.io/embedded-cluster-role-0": "management", |
| 191 | + "kubernetes.io/arch": "amd64", |
| 192 | + "kubernetes.io/hostname": "evans-vm1", |
| 193 | + "kubernetes.io/os": "linux", |
| 194 | + "management": "true", |
| 195 | + "node-role.kubernetes.io/control-plane": "true", |
| 196 | + "node.k0sproject.io/role": "control-plane", |
| 197 | + }, |
| 198 | + }, |
| 199 | + }, |
| 200 | + }, |
| 201 | + wantProviders: providers{embeddedCluster: true, k0s: true}, |
| 202 | + wantProviderString: "embedded-cluster", |
| 203 | + }, |
| 204 | + } |
| 205 | + for _, tt := range tests { |
| 206 | + t.Run(tt.name, func(t *testing.T) { |
| 207 | + providers, stringProvider := ParseNodesForProviders(tt.nodes) |
| 208 | + assert.Equalf(t, tt.wantProviders, providers, |
| 209 | + "ParseNodesForProviders() gotProviders = %v, providers %v", providers, tt.wantProviders, |
| 210 | + ) |
| 211 | + assert.Equalf(t, tt.wantProviderString, stringProvider, |
| 212 | + "ParseNodesForProviders() gotStringProvider = %v, stringProvider %v", stringProvider, tt.wantProviderString, |
| 213 | + ) |
| 214 | + }) |
| 215 | + } |
| 216 | +} |
0 commit comments