Files
api/services/nginx/app/tests/Unit/Subusers/SubuserPermissionTemplatesTest.php
T

47 lines
2.0 KiB
PHP

<?php
app_require('classes/subuser_permission_templates_service.php');
app_require('modules/subusers/helpers/subusers_permission_node_key.php');
use classes\subuser_permission_templates_service;
use modules\subusers\helpers\subusers_permission_node_key;
it('exposes driver access templates with valid subuser permission node keys', function (): void {
$service = new subuser_permission_templates_service();
$templates = $service->templates();
expect(array_column($templates, 'key'))
->toContain(subuser_permission_templates_service::TEMPLATE_DEACTIVATED)
->toContain(subuser_permission_templates_service::TEMPLATE_DRIVER)
->toContain(subuser_permission_templates_service::TEMPLATE_BOOKING_COORDINATOR)
->toContain(subuser_permission_templates_service::TEMPLATE_FLEET_ADMIN);
foreach ($templates as $template) {
foreach ($template['permissions'] as $permission) {
expect(subusers_permission_node_key::tryFrom($permission))->not->toBeNull();
}
}
});
it('expands and classifies practical driver access templates', function (): void {
$service = new subuser_permission_templates_service();
$driver = $service->expandTemplate(subuser_permission_templates_service::TEMPLATE_DRIVER);
$deactivated = $service->expandTemplate(subuser_permission_templates_service::TEMPLATE_DEACTIVATED);
expect($driver['enabled'])->toBeTrue()
->and($driver['permissions'])
->toContain('VEHICLES_LIST')
->toContain('BOOKINGS_ADD')
->and($service->classify($driver['permissions'], true))
->toBe(subuser_permission_templates_service::TEMPLATE_DRIVER)
->and($deactivated['enabled'])
->toBeFalse()
->and($deactivated['permissions'])
->toBe([])
->and($service->classify(['VEHICLES_LIST'], false))
->toBe(subuser_permission_templates_service::TEMPLATE_DEACTIVATED)
->and($service->classify(['VEHICLES_LIST'], true))
->toBe(subuser_permission_templates_service::TEMPLATE_CUSTOM);
});