feat: migrate platform login scenes and native login flows
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
import test from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
import { SceneFlow } from '../../YouleNexus/assets/scripts/platform-login/scene-flow.ts';
|
||||
test('scene transitions are sequential and disposal prevents late scene binding',async()=>{
|
||||
const calls:string[]=[];let finish!:()=>void;
|
||||
const flow=new SceneFlow(async name=>{calls.push(name);if(name==='Loading')await new Promise<void>(r=>finish=r);});
|
||||
const loading=flow.enter('Loading',()=>calls.push('bindLoading'));
|
||||
const login=flow.enter('Login',()=>calls.push('bindLogin'));
|
||||
await Promise.resolve();assert.deepEqual(calls,['Loading']);finish();await loading;await login;
|
||||
assert.deepEqual(calls,['Loading','bindLoading','Login','bindLogin']);
|
||||
flow.dispose();await assert.rejects(flow.enter('Login',()=>{}),/disposed/);
|
||||
});
|
||||
Reference in New Issue
Block a user