Skip to content

Commit 6b93be7

Browse files
authored
Merge pull request #3 from cgauge/abdala-patch-1
Throw exception after rollback
2 parents a4a062f + e136dad commit 6b93be7

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

src/Strategy/RollbackOnFailure.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,10 @@ public function execute(callable $callback, array $context = []): void
4747
$task = $callback();
4848

4949
array_unshift($this->executed, $task);
50-
} catch (Throwable) {
50+
} catch (Throwable $e) {
5151
$this->rollback();
52+
53+
throw $e;
5254
}
5355
}
5456

@@ -59,7 +61,10 @@ public function rollback(): void
5961
});
6062

6163
foreach ($tasks as $task) {
62-
$task->reverse($this->context);
64+
try {
65+
$task->reverse($this->context);
66+
} catch (Throwable) {
67+
}
6368
}
6469
}
6570
}

tests/Strategy/RollbackOnFailureTest.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public function test_it_rollback_when_a_task_fail(): void
4343
->method('reverse');
4444

4545
$createFolder->method('run')
46-
->willThrowException(new Exception());
46+
->willThrowException(new CreateFolderException());
4747

4848
$strategy = new RollbackOnFailure();
4949

@@ -53,12 +53,18 @@ public function test_it_rollback_when_a_task_fail(): void
5353
return $createEmail;
5454
});
5555

56+
$this->expectException(CreateFolderException::class);
57+
5658
$strategy->execute(static function () use ($createFolder): void {
5759
$createFolder->run([]);
5860
});
5961
}
6062
}
6163

64+
class CreateFolderException extends Exception
65+
{
66+
}
67+
6268
interface ReversibleTask extends Task, Reversible
6369
{
6470
}

0 commit comments

Comments
 (0)