Fix self-serve program picker wash type sync
This commit is contained in:
@@ -217,7 +217,19 @@ trait selfserve_lane_command_t
|
||||
}
|
||||
|
||||
try {
|
||||
return (new selfserve_wash_flow())->isMachineAllowedToStartWash((int)$this->id);
|
||||
$reg = method_exists($this, 'getLicensePlate') ? trim((string)$this->getLicensePlate()) : '';
|
||||
if ($reg === '') {
|
||||
return false;
|
||||
}
|
||||
|
||||
$customerNumber = method_exists($this, 'getCustomerNumber') ? (int)$this->getCustomerNumber() : null;
|
||||
$snapshot = (new selfserve_wash_flow())->previewVehicleEligibility(
|
||||
(int)$this->id,
|
||||
$reg,
|
||||
$customerNumber !== null && $customerNumber > 0 ? $customerNumber : null
|
||||
);
|
||||
|
||||
return (bool)($snapshot['allowed'] ?? false);
|
||||
} catch (\Throwable) {
|
||||
return false;
|
||||
}
|
||||
@@ -324,6 +336,7 @@ trait selfserve_lane_command_t
|
||||
protected function runRelaySideEffectsForWashStart(selfserve_lane_command_arguments $arguments): void
|
||||
{
|
||||
if ($arguments->defer_relay_side_effects) {
|
||||
$this->setProgramPickerRelayStatusForWashStart();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -109,15 +109,17 @@ it('parses deferred relay side effects on start command arguments', function ():
|
||||
expect($arguments->defer_relay_side_effects)->toBeTrue();
|
||||
});
|
||||
|
||||
it('skips cleaner, program picker and machine relay side effects when start asks to defer them', function (): void {
|
||||
it('syncs only the program picker relay when start asks to defer machine side effects', function (): void {
|
||||
$lane = new SelfserveLaneStartEntranceTimeoutHarness();
|
||||
|
||||
$lane->runStartRelaySideEffects(true);
|
||||
|
||||
expect($lane->cleanerRelayCalls)->toBe(0);
|
||||
expect($lane->programPickerRelayCalls)->toBe(0);
|
||||
expect($lane->programPickerRelayCalls)->toBe(1);
|
||||
expect($lane->machineRelayCalls)->toBe(0);
|
||||
expect($lane->relayEvents)->toBe([]);
|
||||
expect($lane->relayEvents)->toBe([
|
||||
'program_picker:sync',
|
||||
]);
|
||||
});
|
||||
|
||||
it('keeps cleaner, program picker and machine relay side effects in order for normal start commands', function (): void {
|
||||
|
||||
Reference in New Issue
Block a user