Files
gen1recomp/tests/engine/launcher_box_transition_test.lua
T
2026-10-06 11:00:16 -04:00

38 lines
1.7 KiB
Lua

package.path="./?.lua;./?/init.lua;"..package.path
love=love or require("tests.love_stub")
local T=require("tests.harness")
local Importer=require("src.import.RomImporter")
local Panel=require("src.import.BoxPanel")
local Transition=require("src.ui.kit.Transition")
local clock=10
local oldTime,oldRefresh=love.timer.getTime,Panel.refresh
love.timer.getTime=function() return clock end
Panel.refresh=function(self) clock=clock+.7;self._boxState={};return self._boxState end
local imp=setmetatable({_disarmTextInput=function() end,_setModScope=function() end,
_queueReimport=function() end,_ensureSkins=function() clock=clock+.3 end}, {__index=Importer})
Transition.armed,Transition.reduceMotion=true,false
local tabs={"red","box","mods","online","skins"}
for _,from in ipairs(tabs) do
for _,to in ipairs(tabs) do
if from~=to then
imp.tab=from
imp:_switchTab(to)
Transition.update()
local tr=Transition.get("tabs")
T.check(tr~=nil,from.." → "..to.." starts after loading completes")
T.eq(tr.from,from,"outgoing page retained")
T.eq(tr.to,to,"incoming page retained")
T.eq(tr.p,0,"first frame has whole slide remaining")
clock=clock+.09;Transition.update()
T.check(Transition.progress("tabs")>0 and Transition.progress("tabs")<1,"midpoint still slides")
clock=clock+.1;Transition.update()
T.eq(Transition.get("tabs"),nil,"slide finishes")
end
end
end
Transition.reduceMotion=true;imp.tab="red";imp:_switchTab("box")
T.eq(Transition.get("tabs"),nil,"reduced motion still disables Box slide")
love.timer.getTime,Panel.refresh=oldTime,oldRefresh
Transition.armed,Transition.reduceMotion=false,false;Transition.clear("tabs")
T.finish("launcher_box_transition")