Files
orchard/pkg/resource/v1/labels_test.go
T
edi-oai a838bb0299 Worker: introduce automatic "org.cirruslabs.orchard.worker-name" label (#481)
* Worker: introduce automatic "org.cirruslabs.orchard.worker-name" label

* TestLabelsCopy: use constants to fix linter error
2026-09-03 00:24:20 +01:00

82 lines
2.0 KiB
Go

package v1_test
import (
"testing"
v1 "github.com/cirruslabs/orchard/pkg/resource/v1"
"github.com/stretchr/testify/require"
)
func TestLabelsMatch(t *testing.T) {
// Two nil labels
a := v1.Labels(nil)
b := v1.Labels(nil)
require.True(t, a.Contains(b))
require.True(t, b.Contains(a))
// Two empty labels
a = map[string]string{}
b = map[string]string{}
require.True(t, a.Contains(b))
require.True(t, b.Contains(a))
// Two identical labels
a = map[string]string{"foo": "bar"}
b = map[string]string{"foo": "bar"}
require.True(t, a.Contains(b))
require.True(t, b.Contains(a))
// Supersets against nil labels
a = v1.Labels(nil)
b = map[string]string{"baz": "qux", "foo": "bar"}
require.False(t, a.Contains(b))
require.True(t, b.Contains(a))
// Superset against empty labels
a = map[string]string{}
b = map[string]string{"baz": "qux", "foo": "bar"}
require.False(t, a.Contains(b))
require.True(t, b.Contains(a))
// Superset against subset labels
a = map[string]string{"foo": "bar"}
b = map[string]string{"baz": "qux", "foo": "bar"}
require.False(t, a.Contains(b))
require.True(t, b.Contains(a))
}
func TestLabelsCopy(t *testing.T) {
original := v1.Labels{"foo": "bar"}
copied := original.Copy()
copied["foo"] = "changed"
require.Equal(t, v1.Labels{"foo": "bar"}, original)
require.Equal(t, v1.Labels{"foo": "changed"}, copied)
require.NotNil(t, v1.Labels(nil).Copy())
}
func TestLabelsMerged(t *testing.T) {
const (
originalValue = "original"
overriddenKey = "overridden"
overrideValue = "override"
)
original := v1.Labels{
"preserved": originalValue,
overriddenKey: originalValue,
}
overrides := v1.Labels{
"added": overrideValue,
overriddenKey: overrideValue,
}
require.Equal(t, v1.Labels{
"added": overrideValue,
overriddenKey: overrideValue,
"preserved": originalValue,
}, original.Merged(overrides))
require.Equal(t, originalValue, original[overriddenKey])
require.Equal(t, overrideValue, overrides[overriddenKey])
}