mirror of
https://github.com/kubevela/kubevela.git
synced 2026-03-06 11:41:41 +00:00
77 lines
2.0 KiB
Go
77 lines
2.0 KiB
Go
package podspecworkload
|
|
|
|
import (
|
|
"testing"
|
|
|
|
. "github.com/onsi/ginkgo"
|
|
. "github.com/onsi/gomega"
|
|
v1 "k8s.io/api/core/v1"
|
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
"k8s.io/utils/pointer"
|
|
|
|
"github.com/oam-dev/kubevela/apis/standard.oam.dev/v1alpha1"
|
|
)
|
|
|
|
func TestPodSpecWorkload(t *testing.T) {
|
|
RegisterFailHandler(Fail)
|
|
RunSpecs(t, "PodSpecWorkload Suite")
|
|
}
|
|
|
|
var _ = Describe("Test PodSpecWorkload", func() {
|
|
var baseCase v1alpha1.PodSpecWorkload
|
|
|
|
BeforeEach(func() {
|
|
baseCase = v1alpha1.PodSpecWorkload{
|
|
ObjectMeta: metav1.ObjectMeta{
|
|
Name: "mutate-hook",
|
|
},
|
|
Spec: v1alpha1.PodSpecWorkloadSpec{},
|
|
}
|
|
})
|
|
|
|
It("Test with fill in all default", func() {
|
|
cw := baseCase
|
|
want := baseCase
|
|
want.Spec.Replicas = pointer.Int32Ptr(1)
|
|
DefaultPodSpecWorkload(&cw)
|
|
Expect(cw).Should(BeEquivalentTo(want))
|
|
})
|
|
|
|
It("Test only fill in empty fields", func() {
|
|
cw := baseCase
|
|
cw.Spec.Replicas = pointer.Int32Ptr(10)
|
|
want := cw
|
|
DefaultPodSpecWorkload(&cw)
|
|
Expect(cw).Should(BeEquivalentTo(want))
|
|
})
|
|
|
|
It("Test validate valid trait", func() {
|
|
cw := baseCase
|
|
cw.ObjectMeta.Namespace = "default"
|
|
cw.Spec.Replicas = pointer.Int32Ptr(5)
|
|
cw.Spec.PodSpec.Containers = []v1.Container{
|
|
{
|
|
Name: "test",
|
|
Image: "test",
|
|
},
|
|
}
|
|
Expect(ValidateCreate(&cw).ToAggregate()).NotTo(HaveOccurred())
|
|
Expect(ValidateUpdate(&cw, nil).ToAggregate()).NotTo(HaveOccurred())
|
|
Expect(ValidateDelete(&cw).ToAggregate()).NotTo(HaveOccurred())
|
|
})
|
|
|
|
It("Test validate invalid trait", func() {
|
|
cw := baseCase
|
|
cw.Spec.Replicas = pointer.Int32Ptr(-5)
|
|
Expect(ValidateCreate(&cw).ToAggregate()).To(HaveOccurred())
|
|
Expect(ValidateUpdate(&cw, nil).ToAggregate()).To(HaveOccurred())
|
|
Expect(len(ValidateCreate(&cw))).Should(Equal(3))
|
|
// add namespace
|
|
cw.ObjectMeta.Namespace = "default"
|
|
Expect(len(ValidateCreate(&cw))).Should(Equal(2))
|
|
// get valid replica
|
|
cw.Spec.Replicas = pointer.Int32Ptr(5)
|
|
Expect(len(ValidateCreate(&cw))).Should(Equal(1))
|
|
})
|
|
})
|