mirror of
https://github.com/bryanthaboi/gen1recomp.git
synced 2026-08-17 11:11:10 +02:00
api upgrades, windows dev tools, and android fixes (#299)
* pop up a fake save * add CI to dev branch * Make ROM-free test tiers actually run on Windows (#267) Suite discovery, the extension-point catalog scan, mod test-dir pickup, and the meta-coverage corpus all shelled out to ls/find/test -d, which do not exist in cmd.exe. Every listing came back empty on Windows, so tiers ran 0 suites and still reported ALL TESTS PASSED. Add portable probes to tests/fs_io.lua (same Unix commands on Linux/macOS; dir /b and a shell-free rename-self existence check on Windows) and rewire the four call sites to them. 15/15 engine suites and 2/2 modkit suites now genuinely run and pass on Windows. Fixes #266 Co-authored-by: johnjohto <johnjohto@users.noreply.github.com> * intro api upgrade (#294) * intro api upgrade * api updates * fix tests * updated templates * android fixes for mods and saves (#297) * Android SCALING fixes (#298) * android fixes for mods and saves * perhaps this is the true scaling android issue fix --------- Co-authored-by: johnjohto <johtoboy@atomicmail.io> Co-authored-by: johnjohto <johnjohto@users.noreply.github.com>
This commit is contained in:
@@ -165,6 +165,41 @@ do
|
||||
T.eq(SaveData.createSlot("red"), "slot3", "ids increment past the highest")
|
||||
end
|
||||
|
||||
-- ---------------------------------------------- deleteSlot
|
||||
|
||||
do
|
||||
local files = fresh()
|
||||
local a = SaveData.createSlot("red")
|
||||
local b = SaveData.createSlot("red")
|
||||
SaveData.setActiveSlot("red", b)
|
||||
local save = SaveData.newGame()
|
||||
save.player.name = "KEEP"
|
||||
T.check(SaveData.writeSlot("red", a, save), "seed slot1 with a save")
|
||||
save.player.name = "GONE"
|
||||
T.check(SaveData.writeSlot("red", b, save), "seed slot2 with a save")
|
||||
|
||||
local ok, err = SaveData.deleteSlot("red", b)
|
||||
T.check(ok, "deleteSlot removes the active slot: " .. tostring(err))
|
||||
T.eq(files["saves/red/slot2.lua"], nil, "slot2's file is gone")
|
||||
T.check(files["saves/red/slot1.lua"] ~= nil, "the other slot's file stays")
|
||||
local opts = SaveSerializer.decode(files["options.lua"])
|
||||
T.eq(opts.saveSlots.red.active, a, "active falls back to the remaining slot")
|
||||
T.eq(#opts.saveSlots.red.list, 1, "the deleted id is dropped from the list")
|
||||
T.eq(opts.saveSlots.red.list[1], a, "only slot1 remains registered")
|
||||
|
||||
ok = SaveData.deleteSlot("red", a)
|
||||
T.check(ok, "deleting the last slot succeeds")
|
||||
opts = SaveSerializer.decode(files["options.lua"])
|
||||
T.eq(#opts.saveSlots.red.list, 0, "the registry list is empty")
|
||||
T.eq(opts.saveSlots.red.active, nil, "active clears when no slots remain")
|
||||
T.eq(#SaveData.listSlots("red"), 0, "listSlots reports an empty install")
|
||||
|
||||
local bad, badErr = SaveData.deleteSlot("red", "slot99")
|
||||
T.check(not bad, "deleting an unknown slot fails")
|
||||
T.check(tostring(badErr):find("not registered", 1, true) ~= nil,
|
||||
"unknown-slot error is user-presentable")
|
||||
end
|
||||
|
||||
-- ---------------------------------------------- saveNames follows the slot
|
||||
|
||||
do
|
||||
|
||||
Reference in New Issue
Block a user