Skip to content

Commit 4100f3b

Browse files
authored
Only update bulk statusses if there are open operations (#1)
1 parent 6596acc commit 4100f3b

File tree

2 files changed

+28
-4
lines changed

2 files changed

+28
-4
lines changed

src/Actions/UpdateBulkStatuses.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@
22

33
namespace JustBetter\MagentoAsync\Actions;
44

5+
use Illuminate\Database\Eloquent\Builder;
56
use Illuminate\Foundation\Bus\PendingDispatch;
67
use JustBetter\MagentoAsync\Contracts\UpdatesBulkStatuses;
8+
use JustBetter\MagentoAsync\Enums\OperationStatus;
79
use JustBetter\MagentoAsync\Jobs\UpdateBulkStatusJob;
810
use JustBetter\MagentoAsync\Models\BulkRequest;
911

@@ -12,6 +14,9 @@ class UpdateBulkStatuses implements UpdatesBulkStatuses
1214
public function update(): void
1315
{
1416
BulkRequest::query()
17+
->whereHas('operations', function (Builder $query): void {
18+
$query->where('status', '=', OperationStatus::Open);
19+
})
1520
->get()
1621
->each(fn (BulkRequest $bulkRequest): PendingDispatch => UpdateBulkStatusJob::dispatch($bulkRequest));
1722
}

tests/Actions/UpdateBulkStatusesTest.php

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use Illuminate\Support\Facades\Bus;
66
use JustBetter\MagentoAsync\Actions\UpdateBulkStatuses;
7+
use JustBetter\MagentoAsync\Enums\OperationStatus;
78
use JustBetter\MagentoAsync\Jobs\UpdateBulkStatusJob;
89
use JustBetter\MagentoAsync\Models\BulkRequest;
910
use JustBetter\MagentoAsync\Tests\TestCase;
@@ -16,7 +17,8 @@ public function it_can_update_bulk_statuses(): void
1617
{
1718
Bus::fake();
1819

19-
BulkRequest::query()->create([
20+
/** @var BulkRequest $status1 */
21+
$status1 = BulkRequest::query()->create([
2022
'magento_connection' => '::magento-connection::',
2123
'store_code' => '::store-code::',
2224
'path' => '::path::',
@@ -25,7 +27,8 @@ public function it_can_update_bulk_statuses(): void
2527
'response' => [],
2628
]);
2729

28-
BulkRequest::query()->create([
30+
/** @var BulkRequest $status2 */
31+
$status2 = BulkRequest::query()->create([
2932
'magento_connection' => '::magento-connection::',
3033
'store_code' => '::store-code::',
3134
'path' => '::path::',
@@ -34,7 +37,8 @@ public function it_can_update_bulk_statuses(): void
3437
'response' => [],
3538
]);
3639

37-
BulkRequest::query()->create([
40+
/** @var BulkRequest $status3 */
41+
$status3 = BulkRequest::query()->create([
3842
'magento_connection' => '::magento-connection::',
3943
'store_code' => '::store-code::',
4044
'path' => '::path::',
@@ -43,10 +47,25 @@ public function it_can_update_bulk_statuses(): void
4347
'response' => [],
4448
]);
4549

50+
$status1->operations()->create([
51+
'operation_id' => 1,
52+
'status' => OperationStatus::Open,
53+
]);
54+
55+
$status2->operations()->create([
56+
'operation_id' => 1,
57+
'status' => OperationStatus::Open,
58+
]);
59+
60+
$status3->operations()->create([
61+
'operation_id' => 1,
62+
'status' => OperationStatus::Complete,
63+
]);
64+
4665
/** @var UpdateBulkStatuses $action */
4766
$action = app(UpdateBulkStatuses::class);
4867
$action->update();
4968

50-
Bus::assertDispatched(UpdateBulkStatusJob::class, 3);
69+
Bus::assertDispatched(UpdateBulkStatusJob::class, 2);
5170
}
5271
}

0 commit comments

Comments
 (0)