Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 30 additions & 1 deletion pkg/apis/eventing/v1/trigger_validation_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import (

"github.com/google/go-cmp/cmp"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
eventingduckv1 "knative.dev/eventing/pkg/apis/duck/v1"
"knative.dev/pkg/apis"
duckv1 "knative.dev/pkg/apis/duck/v1"
)
Expand Down Expand Up @@ -60,6 +61,7 @@ var (
)

func TestTriggerValidation(t *testing.T) {
invalidString := "invalid time"
tests := []struct {
name string
t *Trigger
Expand Down Expand Up @@ -258,7 +260,22 @@ func TestTriggerValidation(t *testing.T) {
Message: `The provided injection annotation is only used for default broker, but non-default broker specified here: "test-broker"`,
},
},
}
{
name: "invalid delivery, invalid delay string",
t: &Trigger{
ObjectMeta: v1.ObjectMeta{
Namespace: "test-ns",
},
Spec: TriggerSpec{
Broker: "test_broker",
Filter: validEmptyFilter,
Subscriber: validSubscriber,
Delivery: &eventingduckv1.DeliverySpec{
BackoffDelay: &invalidString,
},
}},
want: apis.ErrInvalidValue(invalidString, "spec.delivery.backoffDelay"),
}}

for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
Expand All @@ -271,6 +288,7 @@ func TestTriggerValidation(t *testing.T) {
}

func TestTriggerSpecValidation(t *testing.T) {
invalidString := "invalid time"
tests := []struct {
name string
ts *TriggerSpec
Expand Down Expand Up @@ -385,6 +403,17 @@ func TestTriggerSpecValidation(t *testing.T) {
Subscriber: validSubscriber,
},
want: &apis.FieldError{},
}, {
name: "invalid delivery, invalid delay string",
ts: &TriggerSpec{
Broker: "test_broker",
Filter: validEmptyFilter,
Subscriber: validSubscriber,
Delivery: &eventingduckv1.DeliverySpec{
BackoffDelay: &invalidString,
},
},
want: apis.ErrInvalidValue(invalidString, "delivery.backoffDelay"),
}}

for _, test := range tests {
Expand Down
15 changes: 5 additions & 10 deletions pkg/apis/eventing/v1beta1/trigger_conversion.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,7 @@ import (
"context"
"fmt"

duckv1 "knative.dev/eventing/pkg/apis/duck/v1"
duckv1beta1 "knative.dev/eventing/pkg/apis/duck/v1beta1"
eventingduckv1 "knative.dev/eventing/pkg/apis/duck/v1"
v1 "knative.dev/eventing/pkg/apis/eventing/v1"
"knative.dev/pkg/apis"
)
Expand All @@ -42,10 +41,8 @@ func (source *Trigger) ConvertTo(ctx context.Context, to apis.Convertible) error
}
}
if source.Spec.Delivery != nil {
sink.Spec.Delivery = &duckv1.DeliverySpec{}
if err := source.Spec.Delivery.ConvertTo(ctx, sink.Spec.Delivery); err != nil {
return err
}
sink.Spec.Delivery = &eventingduckv1.DeliverySpec{}
source.Spec.Delivery.DeepCopyInto(sink.Spec.Delivery)
}
sink.Status.Status = source.Status.Status
sink.Status.SubscriberURI = source.Status.SubscriberURI
Expand All @@ -72,10 +69,8 @@ func (sink *Trigger) ConvertFrom(ctx context.Context, from apis.Convertible) err
}
}
if source.Spec.Delivery != nil {
sink.Spec.Delivery = &duckv1beta1.DeliverySpec{}
if err := sink.Spec.Delivery.ConvertFrom(ctx, source.Spec.Delivery); err != nil {
return err
}
sink.Spec.Delivery = &eventingduckv1.DeliverySpec{}
source.Spec.Delivery.DeepCopyInto(sink.Spec.Delivery)
}
sink.Status.Status = source.Status.Status
sink.Status.SubscriberURI = source.Status.SubscriberURI
Expand Down
4 changes: 2 additions & 2 deletions pkg/apis/eventing/v1beta1/trigger_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import (
duckv1 "knative.dev/pkg/apis/duck/v1"
"knative.dev/pkg/kmeta"

eventingduckv1beta1 "knative.dev/eventing/pkg/apis/duck/v1beta1"
eventingduckv1 "knative.dev/eventing/pkg/apis/duck/v1"
)

const (
Expand Down Expand Up @@ -92,7 +92,7 @@ type TriggerSpec struct {

// Delivery contains the delivery spec for this specific trigger.
// +optional
Delivery *eventingduckv1beta1.DeliverySpec `json:"delivery,omitempty"`
Delivery *eventingduckv1.DeliverySpec `json:"delivery,omitempty"`
Comment thread
slinkydeveloper marked this conversation as resolved.
}

type TriggerFilter struct {
Expand Down
30 changes: 30 additions & 0 deletions pkg/apis/eventing/v1beta1/trigger_validation_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import (

"github.com/google/go-cmp/cmp"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
eventingduckv1 "knative.dev/eventing/pkg/apis/duck/v1"
"knative.dev/pkg/apis"
duckv1 "knative.dev/pkg/apis/duck/v1"
)
Expand Down Expand Up @@ -59,6 +60,7 @@ var (
)

func TestTriggerValidation(t *testing.T) {
invalidString := "invalid time"
tests := []struct {
name string
t *Trigger
Expand Down Expand Up @@ -214,6 +216,21 @@ func TestTriggerValidation(t *testing.T) {
Paths: []string{injectionAnnotationPath},
Message: `The provided injection annotation value can only be "enabled" or "disabled", not "wut"`,
},
}, {
name: "invalid delivery, invalid delay string",
t: &Trigger{
ObjectMeta: v1.ObjectMeta{
Namespace: "test-ns",
},
Spec: TriggerSpec{
Broker: "test_broker",
Filter: validEmptyFilter,
Subscriber: validSubscriber,
Delivery: &eventingduckv1.DeliverySpec{
BackoffDelay: &invalidString,
},
}},
want: apis.ErrInvalidValue(invalidString, "spec.delivery.backoffDelay"),
},
}

Expand All @@ -228,6 +245,8 @@ func TestTriggerValidation(t *testing.T) {
}

func TestTriggerSpecValidation(t *testing.T) {
invalidString := "invalid time"

tests := []struct {
name string
ts *TriggerSpec
Expand Down Expand Up @@ -342,6 +361,17 @@ func TestTriggerSpecValidation(t *testing.T) {
Subscriber: validSubscriber,
},
want: &apis.FieldError{},
}, {
name: "invalid delivery, invalid delay string",
ts: &TriggerSpec{
Broker: "test_broker",
Filter: validEmptyFilter,
Subscriber: validSubscriber,
Delivery: &eventingduckv1.DeliverySpec{
BackoffDelay: &invalidString,
},
},
want: apis.ErrInvalidValue(invalidString, "delivery.backoffDelay"),
}}

for _, test := range tests {
Expand Down
3 changes: 2 additions & 1 deletion pkg/apis/eventing/v1beta1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.