From bdfe9e31c05a9138e6be928e9261e4a85c3ad90e Mon Sep 17 00:00:00 2001 From: clD11 <23483715+clD11@users.noreply.github.com> Date: Mon, 19 Aug 2024 10:45:30 +0100 Subject: [PATCH] refactor: simplify radom event processing checks --- services/skus/radom/event.go | 17 ++++---- services/skus/radom/event_test.go | 63 +++++++++++++++------------- services/skus/service_nonint_test.go | 8 +++- 3 files changed, 49 insertions(+), 39 deletions(-) diff --git a/services/skus/radom/event.go b/services/skus/radom/event.go index 998d281e8..31d4d35a2 100644 --- a/services/skus/radom/event.go +++ b/services/skus/radom/event.go @@ -9,10 +9,10 @@ import ( ) const ( - ErrUnsupportedEvent = Error("radom: unsupported event") - ErrNoCheckoutSessionData = Error("radom: no checkout session data") - ErrBraveOrderIDNotFound = Error("radom: brave order id not found") - ErrSubscriptionIDNotFound = Error("radom: subscription id not found") + ErrUnsupportedEvent = Error("radom: unsupported event") + ErrNoCheckoutSessionData = Error("radom: no checkout session data") + ErrBraveOrderIDNotFound = Error("radom: brave order id not found") + ErrNoRadomPaymentData = Error("radom: no radom payment data") ErrDisabled = Error("radom: disabled") ErrVerificationKeyEmpty = Error("radom: verification key is empty") @@ -94,7 +94,7 @@ func (e *Event) SubID() (uuid.UUID, error) { case e.EventData.Payment != nil: if e.EventData.Payment.RadomData == nil || e.EventData.Payment.RadomData.Subscription == nil { - return uuid.Nil, ErrSubscriptionIDNotFound + return uuid.Nil, ErrNoRadomPaymentData } return e.EventData.Payment.RadomData.Subscription.SubscriptionID, nil @@ -111,18 +111,15 @@ func (e *Event) SubID() (uuid.UUID, error) { } func (e *Event) IsNewSub() bool { - return e != nil && e.EventData != nil && e.EventData.New != nil + return e.EventData != nil && e.EventData.New != nil } func (e *Event) ShouldRenew() bool { - return e != nil && e.EventData != nil && e.EventData.Payment != nil + return e.EventData != nil && e.EventData.Payment != nil } func (e *Event) ShouldCancel() bool { switch { - case e == nil: - return false - case e.EventData == nil: return false diff --git a/services/skus/radom/event_test.go b/services/skus/radom/event_test.go index 1b3ab23c3..4ed963100 100644 --- a/services/skus/radom/event_test.go +++ b/services/skus/radom/event_test.go @@ -446,7 +446,7 @@ func TestEvent_SubID(t *testing.T) { exp: tcExpected{ sid: uuid.Nil, mustErr: func(t must.TestingT, err error, i ...interface{}) { - must.ErrorIs(t, err, ErrSubscriptionIDNotFound) + must.ErrorIs(t, err, ErrNoRadomPaymentData) }, }, }, @@ -465,7 +465,7 @@ func TestEvent_SubID(t *testing.T) { exp: tcExpected{ sid: uuid.Nil, mustErr: func(t must.TestingT, err error, i ...interface{}) { - must.ErrorIs(t, err, ErrSubscriptionIDNotFound) + must.ErrorIs(t, err, ErrNoRadomPaymentData) }, }, }, @@ -573,7 +573,7 @@ func TestEvent_SubID(t *testing.T) { func TestEvent_IsNewSub(t *testing.T) { type tcGiven struct { - event Event + event *Event } type testCase struct { @@ -586,7 +586,7 @@ func TestEvent_IsNewSub(t *testing.T) { { name: "new_subscription", given: tcGiven{ - event: Event{ + event: &Event{ EventData: &EventData{ New: &NewSubscription{}, }, @@ -598,7 +598,7 @@ func TestEvent_IsNewSub(t *testing.T) { { name: "not_new_subscription", given: tcGiven{ - event: Event{ + event: &Event{ EventData: &EventData{}, }, }, @@ -607,7 +607,10 @@ func TestEvent_IsNewSub(t *testing.T) { { name: "not_new_subscription_event_data", - exp: false, + given: tcGiven{ + event: &Event{}, + }, + exp: false, }, } @@ -623,7 +626,7 @@ func TestEvent_IsNewSub(t *testing.T) { func TestEvent_ShouldRenew(t *testing.T) { type tcGiven struct { - event Event + event *Event } type testCase struct { @@ -636,7 +639,7 @@ func TestEvent_ShouldRenew(t *testing.T) { { name: "subscription_payment", given: tcGiven{ - event: Event{ + event: &Event{ EventData: &EventData{ Payment: &SubscriptionPayment{}, }, @@ -648,7 +651,7 @@ func TestEvent_ShouldRenew(t *testing.T) { { name: "not_subscription_payment", given: tcGiven{ - event: Event{ + event: &Event{ EventData: &EventData{}, }, }, @@ -656,8 +659,11 @@ func TestEvent_ShouldRenew(t *testing.T) { }, { - name: "not_subscription_payment_event_data", - exp: false, + name: "no_event_data", + given: tcGiven{ + event: &Event{}, + }, + exp: false, }, } @@ -683,11 +689,6 @@ func TestEvent_ShouldCancel(t *testing.T) { } tests := []testCase{ - { - name: "event_nil", - exp: false, - }, - { name: "event_data_nil", given: tcGiven{ @@ -743,7 +744,7 @@ func TestEvent_ShouldCancel(t *testing.T) { func TestEvent_ShouldProcess(t *testing.T) { type tcGiven struct { - event Event + event *Event } type testCase struct { @@ -756,7 +757,7 @@ func TestEvent_ShouldProcess(t *testing.T) { { name: "new_subscription", given: tcGiven{ - event: Event{ + event: &Event{ EventData: &EventData{ New: &NewSubscription{}, }, @@ -768,7 +769,7 @@ func TestEvent_ShouldProcess(t *testing.T) { { name: "subscription_payment", given: tcGiven{ - event: Event{ + event: &Event{ EventData: &EventData{ Payment: &SubscriptionPayment{}, }, @@ -780,7 +781,7 @@ func TestEvent_ShouldProcess(t *testing.T) { { name: "subscription_cancelled", given: tcGiven{ - event: Event{ + event: &Event{ EventData: &EventData{ Cancelled: &SubscriptionCancelled{}, }, @@ -792,7 +793,7 @@ func TestEvent_ShouldProcess(t *testing.T) { { name: "subscription_expired", given: tcGiven{ - event: Event{ + event: &Event{ EventData: &EventData{ Expired: &SubscriptionExpired{}, }, @@ -803,7 +804,10 @@ func TestEvent_ShouldProcess(t *testing.T) { { name: "not_should_process", - exp: false, + given: tcGiven{ + event: &Event{}, + }, + exp: false, }, } @@ -819,7 +823,7 @@ func TestEvent_ShouldProcess(t *testing.T) { func TestEvent_Effect(t *testing.T) { type tcGiven struct { - event Event + event *Event } type testCase struct { @@ -832,7 +836,7 @@ func TestEvent_Effect(t *testing.T) { { name: "new", given: tcGiven{ - event: Event{ + event: &Event{ EventData: &EventData{ New: &NewSubscription{}, }, @@ -844,7 +848,7 @@ func TestEvent_Effect(t *testing.T) { { name: "renew", given: tcGiven{ - event: Event{ + event: &Event{ EventData: &EventData{ Payment: &SubscriptionPayment{}, }, @@ -856,7 +860,7 @@ func TestEvent_Effect(t *testing.T) { { name: "cancel", given: tcGiven{ - event: Event{ + event: &Event{ EventData: &EventData{ Cancelled: &SubscriptionCancelled{}, }, @@ -868,7 +872,7 @@ func TestEvent_Effect(t *testing.T) { { name: "expired", given: tcGiven{ - event: Event{ + event: &Event{ EventData: &EventData{ Expired: &SubscriptionExpired{}, }, @@ -879,7 +883,10 @@ func TestEvent_Effect(t *testing.T) { { name: "skip", - exp: "skip", + given: tcGiven{ + event: &Event{}, + }, + exp: "skip", }, } diff --git a/services/skus/service_nonint_test.go b/services/skus/service_nonint_test.go index 145b25a03..694c46aab 100644 --- a/services/skus/service_nonint_test.go +++ b/services/skus/service_nonint_test.go @@ -4673,7 +4673,10 @@ func TestService_processRadomEvent(t *testing.T) { tests := []testCase{ { - name: "event_nil", + name: "should_not_process", + given: tcGiven{ + event: &radom.Event{}, + }, }, } @@ -4827,6 +4830,9 @@ func TestService_processRadomEventTx(t *testing.T) { { name: "unknown_action", + given: tcGiven{ + event: &radom.Event{}, + }, exp: tcExpected{ shouldErr: func(t should.TestingT, err error, i ...interface{}) bool { return should.ErrorIs(t, err, errUnknownAction)