diff --git a/.changeset/fast-ears-own.md b/.changeset/fast-ears-own.md new file mode 100644 index 0000000000..1222dedee9 --- /dev/null +++ b/.changeset/fast-ears-own.md @@ -0,0 +1,6 @@ +--- +"@medusajs/test-utils": patch +"@medusajs/orchestration": patch +--- + +fix(orchestration): Handle expected lifecycle errors diff --git a/packages/core/orchestration/src/transaction/transaction-orchestrator.ts b/packages/core/orchestration/src/transaction/transaction-orchestrator.ts index e19f1972fa..9b46be99a1 100644 --- a/packages/core/orchestration/src/transaction/transaction-orchestrator.ts +++ b/packages/core/orchestration/src/transaction/transaction-orchestrator.ts @@ -113,6 +113,13 @@ export class TransactionOrchestrator extends EventEmitter { } } + private static isExpectedError(error: Error): boolean { + return ( + SkipCancelledExecutionError.isSkipCancelledExecutionError(error) || + SkipExecutionError.isSkipExecutionError(error) + ) + } + static clone(orchestrator: TransactionOrchestrator): TransactionOrchestrator { return new TransactionOrchestrator({ id: orchestrator.id, @@ -525,10 +532,7 @@ export class TransactionOrchestrator extends EventEmitter { try { await transaction.saveCheckpoint() } catch (error) { - if ( - !SkipCancelledExecutionError.isSkipCancelledExecutionError(error) && - !SkipExecutionError.isSkipExecutionError(error) - ) { + if (!TransactionOrchestrator.isExpectedError(error)) { throw error } @@ -583,10 +587,7 @@ export class TransactionOrchestrator extends EventEmitter { try { await transaction.saveCheckpoint() } catch (error) { - if ( - !SkipCancelledExecutionError.isSkipCancelledExecutionError(error) && - !SkipExecutionError.isSkipExecutionError(error) - ) { + if (!TransactionOrchestrator.isExpectedError(error)) { throw error } @@ -764,10 +765,7 @@ export class TransactionOrchestrator extends EventEmitter { try { await transaction.saveCheckpoint() } catch (error) { - if ( - !SkipCancelledExecutionError.isSkipCancelledExecutionError(error) && - !SkipExecutionError.isSkipExecutionError(error) - ) { + if (!TransactionOrchestrator.isExpectedError(error)) { throw error } @@ -830,7 +828,7 @@ export class TransactionOrchestrator extends EventEmitter { }) await transaction.saveCheckpoint().catch((error) => { - if (SkipExecutionError.isSkipExecutionError(error)) { + if (TransactionOrchestrator.isExpectedError(error)) { continueExecution = false return } @@ -900,7 +898,7 @@ export class TransactionOrchestrator extends EventEmitter { } await transaction.saveCheckpoint().catch((error) => { - if (!SkipExecutionError.isSkipExecutionError(error)) { + if (!TransactionOrchestrator.isExpectedError(error)) { throw error } }) @@ -1063,7 +1061,7 @@ export class TransactionOrchestrator extends EventEmitter { await this.handleStepSuccess(transaction, step, response) }) .catch(async (error) => { - if (SkipExecutionError.isSkipExecutionError(error)) { + if (TransactionOrchestrator.isExpectedError(error)) { return } @@ -1112,7 +1110,7 @@ export class TransactionOrchestrator extends EventEmitter { } }) .catch(async (error) => { - if (SkipExecutionError.isSkipExecutionError(error)) { + if (TransactionOrchestrator.isExpectedError(error)) { return } diff --git a/packages/medusa-test-utils/src/medusa-test-runner.ts b/packages/medusa-test-utils/src/medusa-test-runner.ts index cc66edcca9..4b967be35b 100644 --- a/packages/medusa-test-utils/src/medusa-test-runner.ts +++ b/packages/medusa-test-utils/src/medusa-test-runner.ts @@ -36,7 +36,7 @@ export interface MedusaSuiteOptions { } getMedusaApp: () => MedusaAppOutput utils: { - waitWorkflowExecutions: (container: MedusaContainer) => Promise + waitWorkflowExecutions: () => Promise } }