mirror of
https://github.com/bryanthaboi/gen1recomp.git
synced 2026-08-12 00:10:56 +02:00
test(ios): cover save export picker
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
package.path = "./?.lua;./?/init.lua;" .. package.path
|
||||
if not _G.love then _G.love = require("tests.love_stub") end
|
||||
|
||||
local S = require("tests.harness").suite("rom importer iOS save export")
|
||||
local eq = S.eq
|
||||
local check = S.check
|
||||
|
||||
love.system = love.system or {}
|
||||
local saved = {
|
||||
createFile = love.system.createFile,
|
||||
read = love.filesystem.read,
|
||||
write = love.filesystem.write,
|
||||
}
|
||||
|
||||
local writes = {}
|
||||
love.filesystem.read = function(name)
|
||||
eq(name, "exports/red.sav", "export reads the generated save")
|
||||
return "save-data"
|
||||
end
|
||||
love.filesystem.write = function(name, data)
|
||||
writes[#writes + 1] = { name = name, data = data }
|
||||
return true
|
||||
end
|
||||
|
||||
local createCalls = {}
|
||||
love.system.createFile = function(name)
|
||||
createCalls[#createCalls + 1] = name
|
||||
return true
|
||||
end
|
||||
|
||||
package.loaded["src.import.SaveFileIO"] = {
|
||||
exportActiveSlot = function(version)
|
||||
eq(version, "red", "exports the selected game save")
|
||||
return true, "exports/red.sav"
|
||||
end,
|
||||
}
|
||||
|
||||
local RomImporter = require("src.import.RomImporter")
|
||||
local ri = setmetatable({
|
||||
android = true,
|
||||
ios = true,
|
||||
workState = nil,
|
||||
saveNotice = {},
|
||||
}, RomImporter)
|
||||
|
||||
ri:exportSave("red")
|
||||
|
||||
eq(#writes, 1, "stages the save for iOS export")
|
||||
eq(writes[1].name, "pending_export.sav", "uses the native bridge staging name")
|
||||
eq(writes[1].data, "save-data", "preserves the exported save data")
|
||||
eq(#createCalls, 1, "opens the system destination picker")
|
||||
eq(createCalls[1], "red.sav", "suggests the original save name")
|
||||
check(ri.saveNotice.red.ok, "reports that the destination picker opened")
|
||||
|
||||
love.system.createFile = saved.createFile
|
||||
love.filesystem.read = saved.read
|
||||
love.filesystem.write = saved.write
|
||||
package.loaded["src.import.SaveFileIO"] = nil
|
||||
|
||||
S.finish()
|
||||
Reference in New Issue
Block a user