5
5
use Illuminate \Support \Facades \Bus ;
6
6
use JustBetter \MagentoStock \Actions \Retrieval \RetrieveAllStock ;
7
7
use JustBetter \MagentoStock \Jobs \Retrieval \RetrieveStockJob ;
8
+ use JustBetter \MagentoStock \Models \Stock ;
8
9
use JustBetter \MagentoStock \Tests \Fakes \FakeRepository ;
9
10
use JustBetter \MagentoStock \Tests \TestCase ;
10
11
use PHPUnit \Framework \Attributes \Test ;
@@ -19,8 +20,33 @@ public function it_dispatches_jobs(): void
19
20
20
21
/** @var RetrieveAllStock $action */
21
22
$ action = app (RetrieveAllStock::class);
22
- $ action ->retrieve (null );
23
+ $ action ->retrieve (null , false );
23
24
24
25
Bus::assertDispatched (RetrieveStockJob::class);
25
26
}
27
+
28
+ #[Test]
29
+ public function it_defers_retrievals (): void
30
+ {
31
+ config ()->set ('magento-stock.repository ' , FakeRepository::class);
32
+
33
+ Bus::fake ();
34
+
35
+ Stock::query ()->create (['sku ' => 'sku_1 ' , 'retrieve ' => false ]);
36
+
37
+ /** @var RetrieveAllStock $action */
38
+ $ action = app (RetrieveAllStock::class);
39
+ $ action ->retrieve (null , true );
40
+
41
+ Bus::assertNotDispatched (RetrieveStockJob::class);
42
+
43
+ $ stocks = Stock::query ()
44
+ ->where ('retrieve ' , '= ' , true )
45
+ ->pluck ('sku ' );
46
+
47
+ $ this ->assertEquals ([
48
+ 'sku_1 ' ,
49
+ 'sku_2 ' ,
50
+ ], $ stocks ->toArray ());
51
+ }
26
52
}
0 commit comments