Files
api/services/nginx/app/tests/Unit/Invoicing/EconomicDraftQueueOnlyRouteBehaviorTest.php
T

63 lines
3.3 KiB
PHP

<?php
it('supports synchronous fallback and queued processing for order draft export route', function (): void {
$content = file_get_contents(app_path('routes/economicInvoiceRoute.php'));
expect($content)->not->toBeFalse();
$content = (string)$content;
$start = strpos($content, "\$this->post('/economic/invoice/draft/export'");
$end = strpos($content, "\$this->delete('/economic/invoice/draft/delete'");
expect($start)->not->toBeFalse();
expect($end)->not->toBeFalse();
expect($end)->toBeGreaterThan($start);
$endpointBlock = substr($content, (int)$start, (int)$end - (int)$start);
expect($endpointBlock)->toContain("if (!\$this->isEconomicTransferQueueAvailable()) {");
expect($endpointBlock)->toContain("'mode' => 'synchronous_fallback'");
expect($endpointBlock)->toContain("'result' => \$result");
expect($endpointBlock)->toContain('economic_transfer_queue::TYPE_ORDER_DRAFT_EXPORT');
expect($endpointBlock)->toContain("'job_id' => \$job_id");
expect($endpointBlock)->toContain("], 202);");
});
it('supports synchronous fallback and queued processing for collected invoice draft-producing routes', function (): void {
$content = file_get_contents(app_path('routes/orderInvoicesRoute.php'));
expect($content)->not->toBeFalse();
$content = (string)$content;
$collectedStart = strpos($content, "\$this->post('/collected-invoices/economic'");
$collectedEnd = strpos($content, "\$this->get('/collected-invoices/economic/queue'");
expect($collectedStart)->not->toBeFalse();
expect($collectedEnd)->not->toBeFalse();
expect($collectedEnd)->toBeGreaterThan($collectedStart);
$collectedBlock = substr($content, (int)$collectedStart, (int)$collectedEnd - (int)$collectedStart);
expect($collectedBlock)->toContain("if (!\$this->isEconomicTransferQueueAvailable()) {");
expect($collectedBlock)->toContain('exportCollectedInvoiceSynchronously');
expect($collectedBlock)->toContain("'mode' => 'synchronous_fallback'");
expect($collectedBlock)->toContain("'result' => \$result");
expect($collectedBlock)->toContain('economic_transfer_queue::TYPE_COLLECTED_INVOICE_EXPORT');
expect($collectedBlock)->toContain("'job_id' => \$job_id");
expect($collectedBlock)->toContain("], 202);");
$stripeStart = strpos($content, "\$this->post('/collected-invoices/stripe/book'");
$stripeEnd = strpos($content, "\$this->post('/collected-invoices/vehicle-subscriptions'");
expect($stripeStart)->not->toBeFalse();
expect($stripeEnd)->not->toBeFalse();
expect($stripeEnd)->toBeGreaterThan($stripeStart);
$stripeBlock = substr($content, (int)$stripeStart, (int)$stripeEnd - (int)$stripeStart);
expect($stripeBlock)->toContain("if (!\$this->isEconomicTransferQueueAvailable()) {");
expect($stripeBlock)->toContain('exportCollectedInvoiceSynchronously');
expect($stripeBlock)->toContain("'mode' => 'synchronous_fallback'");
expect($stripeBlock)->toContain("'result' => \$result");
expect($stripeBlock)->toContain('economic_transfer_queue::TYPE_COLLECTED_INVOICE_EXPORT');
expect($stripeBlock)->toContain("'message' => 'Stripe collected invoice export queued'");
expect($stripeBlock)->toContain("'job_id' => \$job_id");
expect($stripeBlock)->toContain("], 202);");
expect($content)->toContain('private function exportCollectedInvoiceSynchronously');
});