Add machine wash configuration and update self-serve lane service checks
This commit is contained in:
@@ -14,6 +14,7 @@ use modules\selfserve\classes\selfserve_wash_flow;
|
||||
use modules\selfserve\helpers\selfserve_lane_command;
|
||||
use modules\selfserve\helpers\selfserve_lane_port;
|
||||
use modules\selfserve\helpers\selfserve_lane_relay;
|
||||
use modules\selfserve\helpers\selfserve_lane_services;
|
||||
use modules\selfserve\helpers\selfserve_lane_state;
|
||||
use modules\selfserve\helpers\selfserve_lane_status;
|
||||
use modules\selfserve\helpers\selfserve_wash_session_status;
|
||||
|
||||
@@ -264,6 +264,55 @@ it('derives allowed services from published v2 config task snapshots when no ses
|
||||
}
|
||||
});
|
||||
|
||||
it('keeps questions visible but disables machine services and tasks when machine wash is globally disabled', function (): void {
|
||||
$group = api_fixtures()->createGroup([], [
|
||||
'list_own_department_selfserve_vehicle_conditions',
|
||||
]);
|
||||
$scenario = api_fixtures()->createSelfServeScenario([
|
||||
'customer' => ['group_id' => $group['id']],
|
||||
'department_selfserve_enabled' => true,
|
||||
'lane_selfserve_enabled' => true,
|
||||
'machine_wash_enabled' => false,
|
||||
]);
|
||||
$headers = api_fixtures()->bearerHeaders(
|
||||
api_fixtures()->createAuthToken((int)$scenario['customer']['id'])
|
||||
);
|
||||
$laneId = (int)$scenario['lane']['id'];
|
||||
$reg = (string)$scenario['vehicle']['reg'];
|
||||
$productId = (int)$scenario['product']['id'];
|
||||
$machineTaskId = (int)$scenario['tasks'][1]['id'];
|
||||
|
||||
$allowedResponse = api_client()
|
||||
->get(
|
||||
'/department/selfserve/vehicle/allowed?lane_id=' . $laneId
|
||||
. '®=' . urlencode($reg)
|
||||
. '&vehicle_type=' . $productId,
|
||||
$headers
|
||||
)
|
||||
->assertStatus(200)
|
||||
->assertSuccess(true);
|
||||
|
||||
expect($allowedResponse->data()['questions'] ?? [])->not->toBeEmpty()
|
||||
->and($allowedResponse->data()['allowed_services'] ?? [])->not->toContain('MACHINE')
|
||||
->and($allowedResponse->data()['machine_available'] ?? null)->toBeFalse()
|
||||
->and($allowedResponse->data()['machine_wash_enabled'] ?? null)->toBeFalse()
|
||||
->and($allowedResponse->data()['allowed'] ?? null)->toBeFalse();
|
||||
|
||||
foreach ($allowedResponse->data()['tasks'] ?? [] as $task) {
|
||||
expect($task['services'] ?? [])->not->toContain('MACHINE');
|
||||
}
|
||||
|
||||
$serviceResponse = api_client()
|
||||
->post('/modules/self-serve/lane/services/allowed', [
|
||||
'lane_id' => $laneId,
|
||||
'task_ids' => [$machineTaskId],
|
||||
], $headers)
|
||||
->assertStatus(200)
|
||||
->assertSuccess(true);
|
||||
|
||||
expect($serviceResponse->data()['allowed_services'] ?? [])->not->toContain('MACHINE');
|
||||
});
|
||||
|
||||
it('keeps long generated task descriptions when refreshing vehicle eligibility snapshots', function (): void {
|
||||
$group = api_fixtures()->createGroup([], [
|
||||
'list_own_department_selfserve_vehicle_conditions',
|
||||
|
||||
@@ -544,6 +544,11 @@ final class ApiFixtures
|
||||
}
|
||||
|
||||
$this->setModuleConfig('selfserve', 'enabled', 'true');
|
||||
$this->setModuleConfig(
|
||||
'selfserve',
|
||||
'machine_wash_enabled',
|
||||
(bool)($overrides['machine_wash_enabled'] ?? true) ? 'true' : 'false'
|
||||
);
|
||||
|
||||
return [
|
||||
'department' => $department,
|
||||
|
||||
Reference in New Issue
Block a user