-- Kør: luajit tests/test_fieldStatus.lua (fra repo-roden) dofile("FS25_ADSmartPickup/adFieldModel.lua") dofile("FS25_ADSmartPickup/adFieldView.lua") local V = ADFieldView local failures = 0 local function check(name, actual, expected) if actual == expected then print("OK " .. name) else failures = failures + 1 print(string.format("FAIL %s: forventede %s, fik %s", name, tostring(expected), tostring(actual))) end end check("mangler markør", V.fieldStatus({hasMarker = false}), "error") check("arbejder", V.fieldStatus({hasMarker = true, working = true}), "running") check("arbejder men venter på maskine", V.fieldStatus({hasMarker = true, working = true, reasonKey = "spu_field_reason_allBusy"}), "waiting") check("for bred", V.fieldStatus({hasMarker = true, working = true, reasonKey = "spu_field_reason_tooWide"}), "error") check("ingen maskine", V.fieldStatus({hasMarker = true, reasonKey = "spu_field_reason_noRig"}), "error") check("regn", V.fieldStatus({hasMarker = true, working = true, reasonKey = "spu_field_reason_rain"}), "waiting") check("venter på spilleren (høster)", V.fieldStatus({hasMarker = true, awaiting = true}), "waiting") check("start bestilt", V.fieldStatus({hasMarker = true, startRequested = true}), "waiting") check("i ro", V.fieldStatus({hasMarker = true}), "stopped") -- Start må ikke bestilles på en mark uden markør (knappen var før deaktiveret; review 29/9) check("kan starte: med markør", V.canStart({hasMarker = true, working = false}), true) check("kan starte: uden markør -> nej", V.canStart({hasMarker = false, working = false}), false) check("kan stoppe: uden markør men i gang", V.canStart({hasMarker = false, working = true}), true) -- global pause (Stop alt): arbejdstrin uden maskiner = stoppet, [Start] genoptager kun den mark (in-game 29/9) check("pause: arbejdstrin -> stoppet", V.fieldStatus({hasMarker = true, working = true, paused = true}), "stopped") check("pause: genoptaget mark -> kører", V.fieldStatus({hasMarker = true, working = true, paused = true, resumed = true}), "running") check("pause: mangler markør stadig rød", V.fieldStatus({hasMarker = false, paused = true}), "error") check("pause: arbejder-tæller falsk", V.isActiveWork({working = true, paused = true}), false) check("pause: genoptaget arbejder-tæller sand", V.isActiveWork({working = true, paused = true, resumed = true}), true) check("ingen pause: arbejder", V.isActiveWork({working = true}), true) print(failures == 0 and "\nALLE TESTS OK" or ("\n" .. failures .. " FEJL")) os.exit(failures == 0 and 0 or 1)