8000 feat(*): support v2 events as well as v3 events by paul-nicolas · Pull Request #394 · formancehq/payments · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

feat(*): support v2 events as well as v3 events #394

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weâ 8000 €™ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Apr 1, 2025
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
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
)

func (a Activities) EventsSendAccount(ctx context.Context, account models.Account) error {
return a.events.Publish(ctx, a.events.NewEventSavedAccounts(account))
return a.events.Publish(ctx, a.events.NewEventSavedAccounts(account)...)

Check warning on line 11 in internal/connectors/engine/activities/events_send_account.go

View check run for this annotation

Codecov / codecov/patch

internal/connectors/engine/activities/events_send_account.go#L11

Added line #L11 was not covered by tests
}

var EventsSendAccountActivity = Activities{}.EventsSendAccount
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
)

func (a Activities) EventsSendBalance(ctx context.Context, balance models.Balance) error {
return a.events.Publish(ctx, a.events.NewEventSavedBalances(balance))
return a.events.Publish(ctx, a.events.NewEventSavedBalances(balance)...)
}

Check warning on line 12 in internal/connectors/engine/activities/events_send_balance.go

View check run for this annotation

Codecov / codecov/patch

internal/connectors/engine/activities/events_send_balance.go#L11-L12

Added lines #L11 - L12 were not covered by tests

var EventsSendBalanceActivity = Activities{}.EventsSendBalance

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@
)

func (a Activities) EventsSendBankAccount(ctx context.Context, bankAccount models.BankAccount) error {
ba, err := a.events.NewEventSavedBankAccounts(bankAccount)
bas, err := a.events.NewEventSavedBankAccounts(bankAccount)
if err != nil {
return fmt.Errorf("failed to send bank account: %w", err)
return fmt.Errorf("failed to send bank account events: %w", err)

Check warning on line 14 in internal/connectors/engine/activities/events_send_bank_account.go

View check run for this annotation

Codecov / codecov/patch

internal/connectors/engine/activities/events_send_bank_account.go#L14

Added line #L14 was not covered by tests
}
return a.events.Publish(ctx, ba)
return a.events.Publish(ctx, bas...)

Check warning on line 16 in internal/connectors/engine/activities/events_send_bank_account.go

View check run for this annotation

Codecov / codecov/patch

internal/connectors/engine/activities/events_send_bank_account.go#L16

Added line #L16 was not covered by tests
}

var EventsSendBankAccountActivity = Activities{}.EventsSendBankAccount
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
)

func (a Activities) EventsSendConnectorReset(ctx context.Context, connectorID models.ConnectorID, at time.Time) error {
return a.events.Publish(ctx, a.events.NewEventResetConnector(connectorID, at))
return a.events.Publish(ctx, a.events.NewEventResetConnector(connectorID, at)...)

Check warning on line 12 in internal/connectors/engine/activities/events_send_connector_reset.go

View check run for this annotation

Codecov / codecov/patch

internal/connectors/engine/activities/events_send_connector_reset.go#L12

Added line #L12 was not covered by tests
}

var EventsSendConnectorResetActivity = Activities{}.EventsSendConnectorReset
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
}

func (a Activities) EventsSendPayment(ctx context.Context, req EventsSendPaymentRequest) error {
return a.events.Publish(ctx, a.events.NewEventSavedPayments(req.Payment, req.Adjustment))
return a.events.Publish(ctx, a.events.NewEventSavedPayments(req.Payment, req.Adjustment)...)

Check warning on line 16 in internal/connectors/engine/activities/events_send_payment.go

View check run for this annotation

Codecov / codecov/patch

internal/connectors/engine/activities/events_send_payment.go#L16

Added line #L16 was not covered by tests
}

var EventsSendPaymentActivity = Activities{}.EventsSendPayment
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
)

func (a Activities) EventsSendPaymentInitiation(ctx context.Context, pi models.PaymentInitiation) error {
return a.events.Publish(ctx, a.events.NewEventSavedPaymentInitiation(pi))
return a.events.Publish(ctx, a.events.NewEventSavedPaymentInitiation(pi)...)

Check warning on line 11 in internal/connectors/engine/activities/events_send_payment_initiation.go

View check run for this annotation

Codecov / codecov/patch

internal/connectors/engine/activities/events_send_payment_initiation.go#L11

Added line #L11 was not covered by tests
}

var EventsSendPaymentInitiationActivity = Activities{}.EventsSendPaymentInitiation
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@
"go.temporal.io/sdk/workflow"
)

func (a Activities) EventsSendPaymentInitiationAdjustment(ctx context.Context, adj models.PaymentInitiationAdjustment) error {
return a.events.Publish(ctx, a.events.NewEventSavedPaymentInitiationAdjustment(adj))
func (a Activities) EventsSendPaymentInitiationAdjustment(ctx context.Context, adj models.PaymentInitiationAdjustment, pi models.PaymentInitiation) error {
return a.events.Publish(ctx, a.events.NewEventSavedPaymentInitiationAdjustment(adj, pi)...)

Check warning on line 11 in internal/connectors/engine/activities/events_send_payment_initiation_adjustment.go

View check run for this annotation

Codecov / codecov/patch

internal/connectors/engine/activities/events_send_payment_initiation_adjustment.go#L10-L11

Added lines #L10 - L11 were not covered by tests
}

var EventsSendPaymentInitiationAdjustmentActivity = Activities{}.EventsSendPaymentInitiationAdjustment

func EventsSendPaymentInitiationAdjustment(ctx workflow.Context, adj models.PaymentInitiationAdjustment) error {
return executeActivity(ctx, EventsSendPaymentInitiationAdjustmentActivity, nil, adj)
func EventsSendPaymentInitiationAdjustment(ctx workflow.Context, adj models.PaymentInitiationAdjustment, pi models.PaymentInitiation) error {
return executeActivity(ctx, EventsSendPaymentInitiationAdjustmentActivity, nil, adj, pi)

Check warning on line 17 in internal/connectors/engine/activities/events_send_payment_initiation_adjustment.go

View check run for this annotation

Codecov / codecov/patch

internal/connectors/engine/activities/events_send_payment_initiation_adjustment.go#L16-L17

Added lines #L16 - L17 were not covered by tests
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,22 @@
"go.temporal.io/sdk/workflow"
)

func (a Activities) EventsSendPaymentInitiationRelatedPayment(ctx context.Context, relatedPayment models.PaymentInitiationRelatedPayments) error {
return a.events.Publish(ctx, a.events.NewEventSavedPaymentInitiationRelatedPayment(relatedPayment))
func (a Activities) EventsSendPaymentInitiationRelatedPayment(
ctx context.Context,
relatedPayment models.PaymentInitiationRelatedPayments,
pi models.PaymentInitiation,
status models.PaymentInitiationAdjustmentStatus,
) error {
return a.events.Publish(ctx, a.events.NewEventSavedPaymentInitiationRelatedPayment(relatedPayment, pi, status)...)

Check warning on line 16 in internal/connectors/engine/activities/events_send_payment_initiation_related_payments.go

View check run for this annotation

Codecov / codecov/patch

internal/connectors/engine/activities/events_send_payment_initiation_related_payments.go#L15-L16

Added lines #L15 - L16 were not covered by tests
}

var EventsSendPaymentInitiationRelatedPaymentActivity = Activities{}.EventsSendPaymentInitiationRelatedPayment

func EventsSendPaymentInitiationRelatedPayment(ctx workflow.Context, relatedPayment models.PaymentInitiationRelatedPayments) error {
return executeActivity(ctx, EventsSendPaymentInitiationRelatedPaymentActivity, nil, relatedPayment)
func EventsSendPaymentInitiationRelatedPayment(
ctx workflow.Context,
relatedPayment models.PaymentInitiationRelatedPayments,
pi models.PaymentInitiation,
status models.PaymentInitiationAdjustmentStatus,
) error {
return executeActivity(ctx, EventsSendPaymentInitiationRelatedPaymentActivity, nil, relatedPayment, pi, status)

Check warning on line 27 in internal/connectors/engine/activities/events_send_payment_initiation_related_payments.go

View check run for this annotation

Codecov / codecov/patch

internal/connectors/engine/activities/events_send_payment_initiation_related_payments.go#L26-L27

Added lines #L26 - L27 were not covered by tests
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
)

func (a Activities) EventsSendPoolCreation(ctx context.Context, pool models.Pool) error {
return a.events.Publish(ctx, a.events.NewEventSavedPool(pool))
return a.events.Publish(ctx, a.events.NewEventSavedPool(pool)...)

Check warning on line 11 in internal/connectors/engine/activities/events_send_pool_creation.go

View check run for this annotation

Codecov / codecov/patch

internal/connectors/engine/activities/events_send_pool_creation.go#L11

Added line #L11 was not covered by tests
}

var EventsSendPoolCreationActivity = Activities{}.EventsSendPoolCreation
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,18 @@

import (
"context"
"time"

"github.com/google/uuid"
"go.temporal.io/sdk/workflow"
)

func (a Activities) EventsSendPoolDeletion(ctx context.Context, id uuid.UUID) error {
return a.events.Publish(ctx, a.events.NewEventDeletePool(id))
func (a Activities) EventsSendPoolDeletion(ctx context.Context, id uuid.UUID, at time.Time) error {
return a.events.Publish(ctx, a.events.NewEventDeletePool(id, at)...)

Check warning on line 12 in internal/connectors/engine/activities/events_send_pool_deletion.go

View check run for this annotation

Codecov / codecov/patch

internal/connectors/engine/activities/events_send_pool_deletion.go#L11-L12

Added lines #L11 - L12 were not covered by tests
}

var EventsSendPoolDeletionActivity = Activities{}.EventsSendPoolDeletion

func EventsSendPoolDeletion(ctx workflow.Context, id uuid.UUID) error {
return executeActivity(ctx, EventsSendPoolDeletionActivity, nil, id)
func EventsSendPoolDeletion(ctx workflow.Context, id uuid.UUID, at time.Time) error {
return executeActivity(ctx, EventsSendPoolDeletionActivity, nil, id, at)

Check warning on line 18 in internal/connectors/engine/activities/events_send_pool_deletion.go

View check run for this annotation

Codecov / codecov/patch

internal/connectors/engine/activities/events_send_pool_deletion.go#L17-L18

Added lines #L17 - L18 were not covered by tests
}
7 changes: 5 additions & 2 deletions internal/connectors/engine/engine.go
Original file line number Diff line number Diff line change
Expand Up @@ -477,8 +477,11 @@
},
workflow.RunSendEvents,
workflow.SendEvents{
PaymentInitiation: &pi,
PaymentInitiationAdjustment: &adj,
PaymentInitiation: &pi,
SendEventPaymentInitiationAdjustment: &workflow.SendEventPaymentInitiationAdjustment{
PaymentInitiation: &pi,
PaymentInitiationAdjustment: &adj,
},

Check warning on line 484 in internal/connectors/engine/engine.go

View check run for this annotation

Codecov / codecov/patch

internal/connectors/engine/engine.go#L480-L484

Added lines #L480 - L484 were not covered by tests
},
)
if err != nil {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ func (w Workflow) createBankAccount(

bankAccount.RelatedAccounts = append(bankAccount.RelatedAccounts, relatedAccount)

// Do not wait for the events to be sent
if err := workflow.ExecuteChildWorkflow(
workflow.WithChildOptions(
ctx,
Expand All @@ -109,7 +110,7 @@ func (w Workflow) createBankAccount(
SendEvents{
BankAccount: bankAccount,
},
).Get(ctx, nil); err != nil {
).GetChildWorkflowExecution().Get(ctx, nil); err != nil {
return "", err
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -164,41 +164,13 @@ func (s *UnitTestSuite) Test_CreateBankAccount_StorageBankAccountsAddRelatedAcco
s.Error(err)
}

func (s *UnitTestSuite) Test_CreateBankAccount_RunSendEvents_Error() {
s.env.OnActivity(activities.StorageBankAccountsGetActivity, mock.Anything, s.bankAccount.ID, true).Once().Return(&s.bankAccount, nil)
s.env.OnActivity(activities.PluginCreateBankAccountActivity, mock.Anything, mock.Anything).Once().Return(&models.CreateBankAccountResponse{
RelatedAccount: s.pspAccount,
}, nil)
s.env.OnActivity(activities.StorageAccountsStoreActivity, mock.Anything, mock.Anything).Once().Return(nil)
s.env.OnActivity(activities.StorageBankAccountsAddRelatedAccountActivity, mock.Anything, s.bankAccount.ID, mock.Anything).Once().Return(nil)
s.env.OnWorkflow(s.w.runSendEvents, mock.Anything, mock.Anything).Once().Return(temporal.NewNonRetryableApplicationError("test", "test", errors.New("test")))
s.env.OnActivity(activities.StorageTasksStoreActivity, mock.Anything, mock.Anything).Once().Return(func(ctx context.Context, task models.Task) error {
s.Equal(models.TASK_STATUS_FAILED, task.Status)
return nil
})

s.env.ExecuteWorkflow(RunCreateBankAccount, CreateBankAccount{
TaskID: models.TaskID{
Reference: "test",
ConnectorID: s.connectorID,
},
ConnectorID: s.connectorID,
BankAccountID: s.bankAccount.ID,
})

s.True(s.env.IsWorkflowCompleted())
err := s.env.GetWorkflowError()
s.Error(err)
}

func (s *UnitTestSuite) Test_CreateBankAccount_StorageTasksStore_Error() {
s.env.OnActivity(activities.StorageBankAccountsGetActivity, mock.Anything, s.bankAccount.ID, true).Once().Return(&s.bankAccount, nil)
s.env.OnActivity(activities.PluginCreateBankAccountActivity, mock.Anything, mock.Anything).Once().Return(&models.CreateBankAccountResponse{
RelatedAccount: s.pspAccount,
}, nil)
s.env.OnActivity(activities.StorageAccountsStoreActivity, mock.Anything, mock.Anything).Once().Return(nil)
s.env.OnActivity(activities.StorageBankAccountsAddRelatedAccountActivity, mock.Anything, s.bankAccount.ID, mock.Anything).Once().Return(nil)
s.env.OnWorkflow(s.w.runSendEvents, mock.Anything, mock.Anything).Once().Return(temporal.NewNonRetryableApplicationError("test", "test", errors.New("test")))
s.env.OnActivity(activities.StorageBankAccountsAddRelatedAccountActivity, mock.Anything, s.bankAccount.ID, mock.Anything).Once().Return(temporal.NewNonRetryableApplicationError("test", "test", errors.New("test")))
s.env.OnActivity(activities.StorageTasksStoreActivity, mock.Anything, mock.Anything).Once().Return(func(ctx context.Context, task models.Task) error {
s.Equal(models.TASK_STATUS_FAILED, task.Status)
return temporal.NewNonRetryableApplicationError("test", "test", errors.New("test"))
Expand Down
15 changes: 9 additions & 6 deletions internal/connectors/engine/workflow/create_payout.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ func (w Workflow) createPayout(
if !pi.ScheduledAt.IsZero() && pi.ScheduledAt.After(now) {
err = w.addPIAdjustment(
ctx,
pi,
models.PaymentInitiationAdjustmentID{
PaymentInitiationID: createPayout.PaymentInitiationID,
CreatedAt: workflow.Now(ctx),
Expand Down Expand Up @@ -89,6 +90,7 @@ func (w Workflow) createPayout(

err = w.addPIAdjustment(
ctx,
pi,
models.PaymentInitiationAdjustmentID{
PaymentInitiationID: createPayout.PaymentInitiationID,
CreatedAt: workflow.Now(ctx),
Expand Down Expand Up @@ -118,7 +120,7 @@ func (w Workflow) createPayout(
if err := w.storePIPaymentWithStatus(
ctx,
payment,
createPayout.PaymentInitiationID,
pi,
getPIStatusFromPayment(payment.Status),
); err != nil {
return err
Expand Down Expand Up @@ -162,11 +164,11 @@ func (w Workflow) createPayout(
Workflow: RunPollPayout,
Args: []interface{}{
PollPayout{
TaskID: createPayout.TaskID,
ConnectorID: createPayout.ConnectorID,
PaymentInitiationID: createPayout.PaymentInitiationID,
PayoutID: *createPayoutResponse.PollingPayoutID,
ScheduleID: scheduleID,
TaskID: createPayout.TaskID,
ConnectorID: createPayout.ConnectorID,
PaymentInitiation: pi,
PayoutID: *createPayoutResponse.PollingPayoutID,
ScheduleID: scheduleID,
},
},
TaskQueue: w.getDefaultTaskQueue(),
Expand Down Expand Up @@ -198,6 +200,7 @@ func (w Workflow) createPayout(
cause := errorsutils.Cause(errPlugin)
err = w.addPIAdjustment(
ctx,
pi,
models.PaymentInitiationAdjustmentID{
PaymentInitiationID: createPayout.PaymentInitiationID,
CreatedAt: workflow.Now(ctx),
Expand Down
47 changes: 8 additions & 39 deletions internal/connectors/engine/workflow/create_payout_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ func (s *UnitTestSuite) Test_CreatePayout_WithPayment_Success() {
return nil
})
s.env.OnWorkflow(RunSendEvents, mock.Anything, mock.Anything).Once().Return(func(ctx workflow.Context, req SendEvents) error {
s.NotNil(req.PaymentInitiationAdjustment)
s.NotNil(req.SendEventPaymentInitiationAdjustment)
return nil
})
s.env.OnActivity(activities.PluginCreatePayoutActivity, mock.Anything, mock.Anything).Once().Return(func(ctx context.Context, req activities.CreatePayoutRequest) (*models.CreatePayoutResponse, error) {
Expand All @@ -50,7 +50,7 @@ func (s *UnitTestSuite) Test_CreatePayout_WithPayment_Success() {
})
s.env.OnWorkflow(RunSendEvents, mock.Anything, mock.Anything).Once().Return(func(ctx workflow.Context, req SendEvents) error {
s.NotNil(req.Payment)
s.NotNil(req.PaymentInitiationRelatedPayment)
s.NotNil(req.SendEventPaymentInitiationRelatedPayment)
s.Nil(req.Account)
s.Nil(req.Balance)
s.Nil(req.BankAccount)
Expand All @@ -69,7 +69,7 @@ func (s *UnitTestSuite) Test_CreatePayout_WithPayment_Success() {
return nil
})
s.env.OnWorkflow(RunSendEvents, mock.Anything, mock.Anything).Once().Return(func(ctx workflow.Context, req SendEvents) error {
s.NotNil(req.PaymentInitiationAdjustment)
s.NotNil(req.SendEventPaymentInitiationAdjustment)
return nil
})
s.env.OnActivity(activities.StorageTasksStoreActivity, mock.Anything, mock.Anything).Once().Return(func(ctx context.Context, task models.Task) error {
Expand Down Expand Up @@ -104,7 +104,7 @@ func (s *UnitTestSuite) Test_CreatePayout_WithScheduledAt_WithPayment_Success()
return nil
})
s.env.OnWorkflow(RunSendEvents, mock.Anything, mock.Anything).Once().Return(func(ctx workflow.Context, req SendEvents) error {
s.NotNil(req.PaymentInitiationAdjustment)
s.NotNil(req.SendEventPaymentInitiationAdjustment)
return nil
})
s.env.OnActivity(activities.StorageAccountsGetActivity, mock.Anything, *s.paymentInitiationPayout.SourceAccountID).Once().Return(&s.account, nil)
Expand All @@ -119,7 +119,7 @@ func (s *UnitTestSuite) Test_CreatePayout_WithScheduledAt_WithPayment_Success()
return nil
})
s.env.OnWorkflow(RunSendEvents, mock.Anything, mock.Anything).Once().Return(func(ctx workflow.Context, req SendEvents) error {
s.NotNil(req.PaymentInitiationAdjustment)
s.NotNil(req.SendEventPaymentInitiationAdjustment)
return nil
})
s.env.OnActivity(activities.PluginCreatePayoutActivity, mock.Anything, mock.Anything).Once().Return(func(ctx context.Context, req activities.CreatePayoutRequest) (*models.CreatePayoutResponse, error) {
Expand All @@ -141,7 +141,7 @@ func (s *UnitTestSuite) Test_CreatePayout_WithScheduledAt_WithPayment_Success()
})
s.env.OnWorkflow(RunSendEvents, mock.Anything, mock.Anything).Once().Return(func(ctx workflow.Context, req SendEvents) error {
s.NotNil(req.Payment)
s.NotNil(req.PaymentInitiationRelatedPayment)
s.NotNil(req.SendEventPaymentInitiationRelatedPayment)
s.Nil(req.Account)
s.Nil(req.Balance)
s.Nil(req.BankAccount)
Expand All @@ -160,7 +160,7 @@ func (s *UnitTestSuite) Test_CreatePayout_WithScheduledAt_WithPayment_Success()
return nil
})
s.env.OnWorkflow(RunSendEvents, mock.Anything, mock.Anything).Once().Return(func(ctx workflow.Context, req SendEvents) error {
s.NotNil(req.PaymentInitiationAdjustment)
s.NotNil(req.SendEventPaymentInitiationAdjustment)
return nil
})
s.env.OnActivity(activities.StorageTasksStoreActivity, mock.Anything, mock.Anything).Once().Return(func(ctx context.Context, task models.Task) error {
Expand Down Expand Up @@ -194,7 +194,7 @@ func (s *UnitTestSuite) Test_CreatePayout_WithPollingPayment_Success() {
return nil
})
s.env.OnWorkflow(RunSendEvents, mock.Anything, mock.Anything).Once().Return(func(ctx workflow.Context, req SendEvents) error {
s.NotNil(req.PaymentInitiationAdjustment)
s.NotNil(req.SendEventPaymentInitiationAdjustment)
return nil
})
s.env.OnActivity(activities.PluginCreatePayoutActivity, mock.Anything, mock.Anything).Once().Return(func(ctx context.Context, req activities.CreatePayoutRequest) (*models.CreatePayoutResponse, error) {
Expand Down Expand Up @@ -371,37 +371,6 @@ func (s *UnitTestSuite) Test_CreatePayout_StoragePaymentsStore_Error() {
s.Error(err)
}

func (s *UnitTestSuite) Test_CreatePayout_RunSendEvents_Error() {
s.env.OnActivity(activities.StoragePaymentInitiationsGetActivity, mock.Anything, s.paymentInitiationID).Once().Return(&s.paymentInitiationPayout, nil)
s.env.OnActivity(activities.StorageAccountsGetActivity, mock.Anything, *s.paymentInitiationPayout.SourceAccountID).Once().Return(&s.account, nil)
s.env.OnActivity(activities.StorageAccountsGetActivity, mock.Anything, *s.paymentInitiationPayout.DestinationAccountID).Once().Return(&s.account, nil)
s.env.OnActivity(activities.StoragePaymentInitiationsAdjustmentsStoreActivity, mock.Anything, mock.Anything).Once().Return(nil)
s.env.OnWorkflow(RunSendEvents, mock.Anything, mock.Anything).Once().Return(nil)
s.env.OnActivity(activities.PluginCreatePayoutActivity, mock.Anything, mock.Anything).Once().Return(&models.CreatePayoutResponse{
Payment: &s.pspPayment,
}, nil)
s.env.OnActivity(activities.StoragePaymentsStoreActivity, mock.Anything, mock.Anything).Once().Return(nil)
s.env.OnActivity(activities.StoragePaymentInitiationsRelatedPaymentsStoreActivity, mock.Anything, mock.Anything).Once().Return(nil)
s.env.OnWorkflow(RunSendEvents, mock.Anything, mock.Anything).Once().Return(temporal.NewNonRetryableApplicationError("test", "WORKFLOW", errors.New("test")))
s.env.OnActivity(activities.StorageTasksStoreActivity, mock.Anything, mock.Anything).Once().Return(func(ctx context.Context, task models.Task) error {
s.Equal(models.TASK_STATUS_FAILED, task.Status)
return nil
})

s.env.ExecuteWorkflow(RunCreatePayout, CreatePayout{
TaskID: models.TaskID{
Reference: "test",
ConnectorID: s.connectorID,
},
ConnectorID: s.connectorID,
PaymentInitiationID: s.paymentInitiationID,
})

s.True(s.env.IsWorkflowCompleted())
err := s.env.GetWorkflowError()
s.Error(err)
}

func (s *UnitTestSuite) Test_CreatePayoutStoragePaymentInitiationsRelatedPaymentsStore_Error() {
s.env.OnActivity(activities.StoragePaymentInitiationsGetActivity, mock.Anything, s.paymentInitiationID).Once().Return(&s.paymentInitiationPayout, nil)
s.env.OnActivity(activities.StorageAccountsGetActivity, mock.Anything, *s.paymentInitiationPayout.SourceAccountID).Once().Return(&s.account, nil)
Expand Down
Loading
Loading
0