mirror of
https://github.com/bryanthaboi/gen1recomp
synced 2026-10-02 07:50:13 -04:00
36 lines
2.2 KiB
Lua
36 lines
2.2 KiB
Lua
package.path = "./?.lua;./?/init.lua;" .. package.path
|
|
love = love or require("tests.love_stub")
|
|
local T = require("tests.harness")
|
|
local check, eq = T.check, T.eq
|
|
local GameVersion = require("src.core.GameVersion")
|
|
local SaveConvert = require("src.save_convert.SaveConvert")
|
|
|
|
local data = {
|
|
["data/generated/gba/meta.json"] = '{"import_id":"firered","version_id":"firered_1_0"}',
|
|
["data/generated/gba/pokemon/names.lua"] = 'return { [1] = "FIRE RED" }',
|
|
}
|
|
package.loaded["src.import.CacheFs"] = { prefix = "sentinel/", read = function() return nil end }
|
|
package.loaded["src.core.game3.dataset"] = { cache = function()
|
|
return { read = function(_, path) return data[path] end }
|
|
end }
|
|
GameVersion.set("firered")
|
|
eq(SaveConvert.gen3CacheTable("firered", "pokemon/names.lua")[1], "FIRE RED", "matching active edition data is available")
|
|
eq(SaveConvert.gen3CacheTable("emerald", "pokemon/names.lua"), nil, "Emerald cannot borrow FireRed data")
|
|
GameVersion.set("emerald")
|
|
eq(SaveConvert.gen3CacheTable("emerald", "pokemon/names.lua"), nil, "changing active edition cannot relabel stale data")
|
|
data["data/generated/gba/meta.json"] = '{"version":"emerald"}'
|
|
data["data/generated/gba/pokemon/names.lua"] = 'return { [1] = "EMERALD" }'
|
|
eq(SaveConvert.gen3CacheTable("emerald", "pokemon/names.lua")[1], "EMERALD", "verified Emerald metadata permits its data")
|
|
GameVersion.set("leafgreen")
|
|
data["data/generated/gba/meta.json"] = '{"import_id":"firered","version_id":"leafgreen_1_0"}'
|
|
data["data/generated/gba/pokemon/names.lua"] = 'return { [1] = "LEAF GREEN" }'
|
|
eq(SaveConvert.gen3CacheTable("leafgreen", "pokemon/names.lua")[1], "LEAF GREEN", "edition metadata outranks the shared FRLG importer id")
|
|
GameVersion.set("emerald")
|
|
SaveConvert.setGen3CacheDir("emerald", "/nonexistent")
|
|
eq(SaveConvert.gen3CacheTable("emerald", "pokemon/names.lua"), nil, "an explicit missing cache never borrows another source")
|
|
SaveConvert.setGen3CacheDir("emerald", nil)
|
|
eq(package.loaded["src.import.CacheFs"].prefix, "sentinel/", "cache selection restores launcher state")
|
|
data["data/generated/gba/meta.json"] = nil
|
|
eq(SaveConvert.gen3CacheTable("emerald", "pokemon/names.lua"), nil, "unidentified active cache is refused")
|
|
T.finish()
|