feat: integrate platform room entry, UI migration and erqiwang documentation
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
import test from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
import {RequestLoading} from '../../YouleNexus/assets/framework/presentation/request-loading.ts';
|
||||
test('request loading closes on matching success or failure independent of payload',()=>{
|
||||
const shown:boolean[]=[];const loading=new RequestLoading(v=>shown.push(v));
|
||||
for(const rpc of ['get_player_task','get_task_award','getVipRankList'] as const){
|
||||
for(const data of [{state:0},{state:1,error:'失败'},null]){loading.begin(rpc);loading.received({route:'agent',rpc,data});assert.deepEqual(shown.splice(0),[true,false]);}
|
||||
}
|
||||
loading.begin('get_player_task');loading.received({route:'agent',rpc:'getVipRankList'});assert.deepEqual(shown,[true]);
|
||||
loading.received({route:'agent',rpc:'show_message'});assert.deepEqual(shown,[true,false]);
|
||||
});
|
||||
test('overlapping requests, cancellation, and duplicate replies do not flicker',()=>{
|
||||
const shown:boolean[]=[];const loading=new RequestLoading(v=>shown.push(v));
|
||||
loading.begin('get_player_task');loading.begin('getVipRankList');loading.received({route:'agent',rpc:'get_player_task'});
|
||||
assert.deepEqual(shown,[true]);loading.cancel('getVipRankList');loading.cancel('getVipRankList');
|
||||
assert.deepEqual(shown,[true,false]);loading.begin('get_task_award');loading.clear();assert.deepEqual(shown,[true,false,true,false]);
|
||||
});
|
||||
Reference in New Issue
Block a user