Files
api/services/nginx/app/tests/Unit/Invoicing/EconomicTransferQueueAccessScopeTest.php
T
Jeppe B c795df4aad Add invoice period review workflow (#336)
Improve the superuser invoice-period review API, stale-preview protection, queue visibility, review blockers, and e-conomic eligibility.
2026-08-02 19:20:50 +02:00

28 lines
1.8 KiB
PHP

<?php
it('scopes economic transfer queue route reads and retries to the current user', function (): void {
$economic_invoice_route = file_get_contents(app_path('routes/economicInvoiceRoute.php'));
$collected_invoice_route = file_get_contents(app_path('routes/orderInvoicesRoute.php'));
$queue = file_get_contents(app_path('classes/economic_transfer_queue.php'));
expect($economic_invoice_route)->not->toBeFalse();
expect($collected_invoice_route)->not->toBeFalse();
expect($queue)->not->toBeFalse();
expect($economic_invoice_route)->toContain('$queue->getJobByIdForUser((int)$job_id, (int)$user->id)');
expect($economic_invoice_route)->toContain('$queue->retryJobForUser((int)$job_id, (int)$user->id)');
expect($collected_invoice_route)->toContain('$queue->listJobsForCreatedBy(');
expect($collected_invoice_route)->toContain('$this->countCollectedInvoiceQueueJobs($queue, $statuses, (int)$user->id)');
expect($collected_invoice_route)->toContain('private function requireCollectedInvoiceQueueJobById(int $job_id, int $created_by, bool $mustBeFailed = false): array');
expect($collected_invoice_route)->toContain('$queue->getJobByIdForUser($job_id, $created_by)');
expect($collected_invoice_route)->toContain('$queue->retryJobForUser($job_id, (int)$user->id)');
expect($queue)->toContain('LEFT JOIN economic_transfer_queue_job_requesters r')
->and($queue)->toContain('q.created_by = ? OR r.user_id = ?')
->and($queue)->toContain('private function jobVisibilitySql(string $alias, int $user_id): string')
->and($queue)->toContain('requester.queue_job_id = $alias.id AND requester.user_id = $user_id')
->and($queue)->toContain('$this->registerJobRequester((int)($active_job[\'id\'] ?? 0), $created_by);')
->and($queue)->toContain('Only the queue job creator can retry this job');
});