not->toBeFalse(); expect($machineTypesRoute)->toContain('/department/selfserve/machine-types'); expect($vehicleConditionsRoute)->not->toBeFalse(); expect($vehicleConditionsRoute)->toContain('/department/selfserve/vehicle/allowed'); expect($vehicleConditionsRoute)->toContain('/department/selfserve/washes/summary'); expect($vehicleConditionsRoute)->toContain('synchronizeSession'); expect($webhookRoute)->not->toBeFalse(); expect($webhookRoute)->toContain('/relay/button/press/post'); expect($webhookRoute)->toContain('recordMachineStartWebhook'); }); it('keeps machine type support wired into lanes, tasks, and conditions routes', function (): void { $lanesRoute = file_get_contents(app_path('routes/departmentLanesRoute.php')); $tasksRoute = file_get_contents(app_path('routes/departmentSelfserveTasksRoute.php')); $conditionsRoute = file_get_contents(app_path('routes/departmentSelfserveConditionsRoute.php')); $questionsRoute = file_get_contents(app_path('routes/departmentSelfserveQuestionsRoute.php')); expect($lanesRoute)->toContain('machine_type_id'); expect($tasksRoute)->toContain('machine_type_id'); expect($conditionsRoute)->toContain('machine_type_id'); expect($questionsRoute)->toContain('department') // shared questions still use the legacy columns with default 0 scope ->toContain('lane') ->toContain('product'); }); it('wires machine relay status get and set endpoints', function (): void { $moduleSelfServeRoute = file_get_contents(app_path('routes/moduleSelfServeRoute.php')); expect($moduleSelfServeRoute)->not->toBeFalse(); expect($moduleSelfServeRoute)->toContain('/modules/self-serve/lane/relay/machine/status'); expect($moduleSelfServeRoute)->toContain('/modules/self-serve/lane/relay/machine/set'); expect($moduleSelfServeRoute)->toContain('/modules/self-serve/lane/relay/machine_program_picker/status'); expect($moduleSelfServeRoute)->toContain('/modules/self-serve/lane/relay/machine_program_picker/set'); expect($moduleSelfServeRoute)->toContain('/modules/self-serve/lane/relay/machine_cleaner/status'); expect($moduleSelfServeRoute)->toContain('/modules/self-serve/lane/relay/machine_cleaner/set'); expect($moduleSelfServeRoute)->toContain('getMachineRelayStatus'); expect($moduleSelfServeRoute)->toContain('setMachineRelayStatus'); expect($moduleSelfServeRoute)->toContain('getMachineProgramPickerRelayStatus'); expect($moduleSelfServeRoute)->toContain('setMachineProgramPickerRelayStatus'); expect($moduleSelfServeRoute)->toContain('getMachineCleanerRelayStatus'); expect($moduleSelfServeRoute)->toContain('setMachineCleanerRelayStatus'); }); it('wires self-serve lane gate open endpoint', function (): void { $moduleSelfServeRoute = file_get_contents(app_path('routes/moduleSelfServeRoute.php')); expect($moduleSelfServeRoute)->not->toBeFalse(); expect($moduleSelfServeRoute)->toContain('/modules/self-serve/lane/gate/open'); expect($moduleSelfServeRoute)->toContain('modules_selfserve_lane_gate_open'); expect($moduleSelfServeRoute)->toContain('selfserve_lane_port::ENTRANCE'); expect($moduleSelfServeRoute)->toContain('selfserve_lane_port::EXIT'); expect($moduleSelfServeRoute)->toContain('$lane->open($gate)'); }); it('wires in-progress self-serve wash details endpoint', function (): void { $moduleSelfServeRoute = file_get_contents(app_path('routes/moduleSelfServeRoute.php')); expect($moduleSelfServeRoute)->not->toBeFalse(); expect($moduleSelfServeRoute)->toContain('/modules/self-serve/lane/wash/in-progress'); expect($moduleSelfServeRoute)->toContain('modules_selfserve_lane_wash_in_progress_view'); expect($moduleSelfServeRoute)->toContain("'in_progress' => true"); expect($moduleSelfServeRoute)->toContain("'in_progress' => false"); });