Add unit and integration tests for economic_transfer_queue and related endpoints, replacing synchronous fallback methods with queue-based processing.
This commit is contained in:
+19
-14
@@ -24,29 +24,29 @@ it('guards all economic invoice queue endpoints before constructing queue servic
|
||||
}
|
||||
});
|
||||
|
||||
it('guards all collected-invoice queue endpoints before constructing queue service', function (): void {
|
||||
it('guards collected-invoice and stripe draft-producing endpoints before constructing queue service', function (): void {
|
||||
$content = file_get_contents(app_path('routes/orderInvoicesRoute.php'));
|
||||
|
||||
expect($content)->not->toBeFalse();
|
||||
|
||||
$guardCount = preg_match_all('/\$this->ensureEconomicTransferQueueIsAvailable\(\);/', (string)$content);
|
||||
$queueInitCount = preg_match_all('/new economic_transfer_queue\(\);/', (string)$content);
|
||||
expect($guardCount)->toBe(3);
|
||||
expect($queueInitCount)->toBe(4);
|
||||
expect($guardCount)->toBe(5);
|
||||
expect($queueInitCount)->toBe(5);
|
||||
|
||||
$endpointPatterns = [
|
||||
"/\\\$this->post\\('\\/collected-invoices\\/economic'.*?\\\$this->ensureEconomicTransferQueueIsAvailable\\(\\);.*?new economic_transfer_queue\\(\\);/s",
|
||||
"/\\\$this->get\\('\\/collected-invoices\\/economic\\/queue'.*?\\\$this->ensureEconomicTransferQueueIsAvailable\\(\\);.*?new economic_transfer_queue\\(\\);/s",
|
||||
"/\\\$this->get\\('\\/collected-invoices\\/economic\\/queue\\/status'.*?\\\$this->ensureEconomicTransferQueueIsAvailable\\(\\);.*?new economic_transfer_queue\\(\\);/s",
|
||||
"/\\\$this->post\\('\\/collected-invoices\\/economic\\/queue\\/retry'.*?\\\$this->ensureEconomicTransferQueueIsAvailable\\(\\);.*?new economic_transfer_queue\\(\\);/s",
|
||||
"/\\\$this->post\\('\\/collected-invoices\\/stripe\\/book'.*?\\\$this->ensureEconomicTransferQueueIsAvailable\\(\\);.*?new economic_transfer_queue\\(\\);/s",
|
||||
];
|
||||
|
||||
foreach ($endpointPatterns as $pattern) {
|
||||
expect(preg_match($pattern, (string)$content))->toBe(1);
|
||||
}
|
||||
|
||||
expect($content)->toContain('if (!$this->isEconomicTransferQueueAvailable()) {');
|
||||
expect($content)->toContain('$result = $this->exportCollectedInvoiceSynchronously($collected_order_invoices, $send_as_is);');
|
||||
expect($content)->toContain('private function exportCollectedInvoiceSynchronously(collected_order_invoices_o $collected_order_invoices, bool $send_as_is): array');
|
||||
expect($content)->not->toContain('exportCollectedInvoiceSynchronously');
|
||||
expect($content)->toContain('private function isEconomicTransferQueueAvailable(): bool');
|
||||
});
|
||||
|
||||
@@ -66,13 +66,18 @@ it('uses a consistent unavailable-service contract for missing queue dependencie
|
||||
expect($orderInvoicesRouteContent)->toContain("class_exists('\\\\classes\\\\economic_transfer_executor')");
|
||||
expect($orderInvoicesRouteContent)->toContain("class_exists('\\\\classes\\\\economic_transfer_queue_schema_bootstrap')");
|
||||
expect($orderInvoicesRouteContent)->toContain('class_exists(economic_transfer_queue::class)');
|
||||
expect($orderInvoicesRouteContent)->toContain('if (!$this->isEconomicTransferQueueAvailable()) {');
|
||||
expect(preg_match_all('/if \\(!\\$this->isEconomicTransferQueueAvailable\\(\\)\\) \\{/', (string)$orderInvoicesRouteContent))->toBe(1);
|
||||
|
||||
foreach ([$invoiceRouteContent, $orderInvoicesRouteContent] as $content) {
|
||||
expect($content)->toContain('private function ensureEconomicTransferQueueIsAvailable(): void');
|
||||
expect($content)->toContain("Economic transfer queue is unavailable in this deployment', 503");
|
||||
expect($content)->not->toContain("require_once __DIR__ . '/../classes/economic_transfer_executor.php';");
|
||||
expect($content)->not->toContain("require_once __DIR__ . '/../classes/economic_transfer_queue_schema_bootstrap.php';");
|
||||
expect($content)->not->toContain("require_once __DIR__ . '/../classes/economic_transfer_queue.php';");
|
||||
}
|
||||
expect($invoiceRouteContent)->toContain('private function ensureEconomicTransferQueueIsAvailable(): void');
|
||||
expect($invoiceRouteContent)->toContain("Economic transfer queue is unavailable in this deployment', 503");
|
||||
expect($invoiceRouteContent)->not->toContain("require_once __DIR__ . '/../classes/economic_transfer_executor.php';");
|
||||
expect($invoiceRouteContent)->not->toContain("require_once __DIR__ . '/../classes/economic_transfer_queue_schema_bootstrap.php';");
|
||||
expect($invoiceRouteContent)->not->toContain("require_once __DIR__ . '/../classes/economic_transfer_queue.php';");
|
||||
|
||||
expect($orderInvoicesRouteContent)->toContain('private function ensureEconomicTransferQueueIsAvailable(): void');
|
||||
expect($orderInvoicesRouteContent)->toContain("Economic transfer queue is unavailable in this deployment', 503");
|
||||
expect($orderInvoicesRouteContent)->not->toContain('exportCollectedInvoiceSynchronously');
|
||||
expect($orderInvoicesRouteContent)->not->toContain("require_once __DIR__ . '/../classes/economic_transfer_executor.php';");
|
||||
expect($orderInvoicesRouteContent)->not->toContain("require_once __DIR__ . '/../classes/economic_transfer_queue_schema_bootstrap.php';");
|
||||
expect($orderInvoicesRouteContent)->not->toContain("require_once __DIR__ . '/../classes/economic_transfer_queue.php';");
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user