27-05-2026 DHL Modul v2.1 / Optimierung tracking

This commit is contained in:
Kevin Adametz 2026-05-27 18:51:23 +02:00
parent 036595be94
commit 2bdc9ada3c
33 changed files with 2367 additions and 2086 deletions

View file

@ -0,0 +1,47 @@
<?php
use App\Http\Controllers\ModalController;
use App\User;
use Symfony\Component\HttpKernel\Exception\HttpException;
function invokeDhlModalAuth(?User $user): void
{
if ($user !== null) {
Auth::shouldReceive('user')->andReturn($user);
} else {
Auth::shouldReceive('user')->andReturnNull();
}
$controller = new ModalController;
$method = (new ReflectionClass(ModalController::class))->getMethod('authorizeDhlShipmentModal');
$method->setAccessible(true);
$method->invoke($controller);
}
afterEach(function () {
Mockery::close();
});
it('rejects guests for the DHL shipment modal', function () {
invokeDhlModalAuth(null);
})->throws(HttpException::class, 'DHL shipment modal is only available for admin users.');
it('rejects VIP users (admin == 1) for the DHL shipment modal', function () {
$vip = (new User)->forceFill(['admin' => 1]);
invokeDhlModalAuth($vip);
})->throws(HttpException::class, 'DHL shipment modal is only available for admin users.');
it('rejects regular consultants for the DHL shipment modal', function () {
$consultant = (new User)->forceFill(['admin' => 0]);
invokeDhlModalAuth($consultant);
})->throws(HttpException::class, 'DHL shipment modal is only available for admin users.');
it('allows real admin users (admin >= 2) for the DHL shipment modal', function () {
$admin = (new User)->forceFill(['admin' => 2]);
invokeDhlModalAuth($admin);
expect(true)->toBeTrue();
});