Sync self-serve machine relay session state
This commit is contained in:
@@ -86,6 +86,73 @@ it('allows the customer self-serve start sequence without department access', fu
|
||||
->toBe((int)$scenario['customer']['customer_number']);
|
||||
});
|
||||
|
||||
it('marks the active customer session relay-enabled after machine relay enable', function (): void {
|
||||
$group = api_fixtures()->createGroup([], [
|
||||
'list_own_department_selfserve_vehicle_conditions',
|
||||
'modules_selfserve_lane_relay_enable_machine',
|
||||
]);
|
||||
$scenario = api_fixtures()->createSelfServeScenario([
|
||||
'customer' => ['group_id' => $group['id']],
|
||||
'department_selfserve_enabled' => true,
|
||||
'lane_selfserve_enabled' => true,
|
||||
'session' => [
|
||||
'status' => 'READY_FOR_MACHINE_START',
|
||||
'machine_relay_enabled' => 0,
|
||||
'machine_relay_enabled_at' => null,
|
||||
'machine_start_triggered' => 0,
|
||||
'machine_start_triggered_at' => null,
|
||||
'wash_started_at' => null,
|
||||
],
|
||||
]);
|
||||
$headers = api_fixtures()->bearerHeaders(
|
||||
api_fixtures()->createAuthToken((int)$scenario['customer']['id'])
|
||||
);
|
||||
$laneId = (int)$scenario['lane']['id'];
|
||||
$reg = (string)$scenario['vehicle']['reg'];
|
||||
$machineTaskId = (int)$scenario['tasks'][1]['id'];
|
||||
|
||||
selfserve_customer_start_make_available($laneId);
|
||||
|
||||
api_client()
|
||||
->get('/department/selfserve/vehicle/allowed?lane_id=' . $laneId . '®=' . urlencode($reg), $headers)
|
||||
->assertStatus(200)
|
||||
->assertSuccess(true);
|
||||
|
||||
api_client()
|
||||
->post('/modules/self-serve/lane/services/allowed', [
|
||||
'lane_id' => $laneId,
|
||||
'task_ids' => [$machineTaskId],
|
||||
], $headers)
|
||||
->assertStatus(200)
|
||||
->assertSuccess(true);
|
||||
|
||||
api_client()
|
||||
->post('/modules/self-serve/lane/command', [
|
||||
'lane_id' => $laneId,
|
||||
'command' => 'START',
|
||||
'license_plate' => $reg,
|
||||
'defer_relay_side_effects' => true,
|
||||
], $headers)
|
||||
->assertStatus(200)
|
||||
->assertSuccess(true);
|
||||
|
||||
api_client()
|
||||
->post('/modules/self-serve/lane/relay/machine/enable', [
|
||||
'lane_id' => $laneId,
|
||||
], $headers)
|
||||
->assertStatus(200)
|
||||
->assertSuccess(true);
|
||||
|
||||
$activeResponse = api_client()
|
||||
->get('/modules/self-serve/lane/wash/my-active-wash', $headers)
|
||||
->assertStatus(200)
|
||||
->assertSuccess(true);
|
||||
|
||||
expect($activeResponse->data()['session']['status'] ?? null)->toBe('MACHINE_RELAY_ENABLED')
|
||||
->and($activeResponse->data()['session']['machine_relay_enabled'] ?? null)->toBeTrue()
|
||||
->and($activeResponse->data()['session']['machine_start_triggered'] ?? null)->toBeFalse();
|
||||
});
|
||||
|
||||
it('derives allowed services from v2 session task snapshots when task rows are not legacy records', function (): void {
|
||||
$group = api_fixtures()->createGroup([], [
|
||||
'list_own_department_selfserve_vehicle_conditions',
|
||||
|
||||
Reference in New Issue
Block a user