Fix self-serve relay sync to enforce lane safety guards
This commit is contained in:
@@ -514,26 +514,26 @@ class departmentsRoute
|
||||
if ($enabled) {
|
||||
// Self-serve enabled: keep machine stack off.
|
||||
$this->setOptionalLaneRelayState($lane, 'relay_machine_program_picker_id', static function () use ($lane): void {
|
||||
$lane->setMachineProgramPickerRelayStatusHard(false);
|
||||
$lane->setMachineProgramPickerRelayStatus(false);
|
||||
});
|
||||
$this->setOptionalLaneRelayState($lane, 'relay_machine_cleaner_id', static function () use ($lane): void {
|
||||
$lane->setMachineCleanerRelayStatusHard(false);
|
||||
$lane->setMachineCleanerRelayStatus(false);
|
||||
});
|
||||
try {
|
||||
$lane->setMachineRelayStatusHard(false);
|
||||
$lane->setMachineRelayStatus(false);
|
||||
} catch (\Throwable) {}
|
||||
continue;
|
||||
}
|
||||
|
||||
// Self-serve disabled: restore machine stack on.
|
||||
$this->setOptionalLaneRelayState($lane, 'relay_machine_cleaner_id', static function () use ($lane): void {
|
||||
$lane->setMachineCleanerRelayStatusHard(true);
|
||||
$lane->setMachineCleanerRelayStatus(true);
|
||||
});
|
||||
try {
|
||||
$lane->setMachineRelayStatusHard(true);
|
||||
$lane->setMachineRelayStatus(true);
|
||||
} catch (\Throwable) {}
|
||||
$this->setOptionalLaneRelayState($lane, 'relay_machine_program_picker_id', static function () use ($lane): void {
|
||||
$lane->setMachineProgramPickerRelayStatusHard(true);
|
||||
$lane->setMachineProgramPickerRelayStatus(true);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
+6
-6
@@ -6,10 +6,10 @@ it('syncs lane relay states when department self-serve enabled flag changes', fu
|
||||
expect($routeContent)->not->toBeFalse();
|
||||
expect($routeContent)->toContain('/departments/self-serve/enabled');
|
||||
expect($routeContent)->toContain('$this->syncDepartmentSelfServeRelayStates((int)$department->id, $enabled);');
|
||||
expect($routeContent)->toContain('setMachineProgramPickerRelayStatusHard(false)');
|
||||
expect($routeContent)->toContain('setMachineCleanerRelayStatusHard(false)');
|
||||
expect($routeContent)->toContain('setMachineRelayStatusHard(false)');
|
||||
expect($routeContent)->toContain('setMachineCleanerRelayStatusHard(true)');
|
||||
expect($routeContent)->toContain('setMachineRelayStatusHard(true)');
|
||||
expect($routeContent)->toContain('setMachineProgramPickerRelayStatusHard(true)');
|
||||
expect($routeContent)->toContain('setMachineProgramPickerRelayStatus(false)');
|
||||
expect($routeContent)->toContain('setMachineCleanerRelayStatus(false)');
|
||||
expect($routeContent)->toContain('setMachineRelayStatus(false)');
|
||||
expect($routeContent)->toContain('setMachineCleanerRelayStatus(true)');
|
||||
expect($routeContent)->toContain('setMachineRelayStatus(true)');
|
||||
expect($routeContent)->toContain('setMachineProgramPickerRelayStatus(true)');
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user