d
This commit is contained in:
parent
c3a6f5ff37
commit
4c4e767ec6
73 changed files with 3502 additions and 741 deletions
|
|
@ -1,7 +1,7 @@
|
|||
'use strict';
|
||||
const {assert,functionSource,app,css,html,read,vm,buildMeta}=require('./helpers/app-source');
|
||||
const packageVersion=JSON.parse(read('package.json')).version;
|
||||
assert(packageVersion===buildMeta.PACKAGE_VERSION&&buildMeta.APP_VERSION==='47.83','v47.83 canonical version marker is missing');
|
||||
assert(packageVersion===buildMeta.PACKAGE_VERSION&&buildMeta.APP_VERSION==='48.0','v47.84 canonical version marker is missing');
|
||||
|
||||
const bindBoard=functionSource('bindBoard');
|
||||
assert(bindBoard.includes('const release=(paintCurrent=false)=>{')&&bindBoard.includes('cancelBoardDragFrame(b);clearDragRender(b);hidePickupHandleOverlay()'),'Pointer release does not synchronously stop the drag scheduler and remove the pickup overlay');
|
||||
|
|
@ -13,10 +13,10 @@ assert(css.includes('#pickupHandleOverlay.custom-cursor.visible{display:grid}')&
|
|||
assert(functionSource('syncCursorAppearance').includes('syncPickupHandleDesign()'),'Changing cursor style does not refresh the pickup appearance');
|
||||
|
||||
const merge=functionSource('mergeSnapshotIntoData');
|
||||
assert(merge.includes('authoritativeCompatibleStateIds=authoritativeWorld?new Set():null')&&merge.includes('retainLocalSolve=compatible&¤t?.solved===true&&incoming?.solved!==true')&&merge.includes("if(retainLocalSolve)noteCloudRow('state',id)")&&merge.includes('merged=compatible?mergeBoardStates(current,incoming):deepClone(incoming)')&&!merge.includes('current?.solved&&!incoming.solved?deepClone(incoming)'),'Authoritative pull can still downgrade a compatible local clear or reuse a clear across replaced board geometry');
|
||||
assert(merge.includes('authoritativeCompatibleStateIds=authoritativeWorld?new Set():null')&&merge.includes('retainLocalSolve=compatible&¤t?.solved===true&&incoming?.solved!==true')&&merge.includes('retainClaimedPending=compatible')&&merge.includes("if(retainLocalSolve){noteCloudRow('state',id);merged=deepClone(current)}")&&merge.includes('else{clearSharedWorldJournalRow')&&!merge.includes('merged=compatible?mergeBoardStates(current,incoming):deepClone(incoming)'),'Authoritative pull can still downgrade a compatible local clear, erase a claimant retry, or merge stale unfinished paths');
|
||||
const completion=functionSource('checkSolvedAndExpand');
|
||||
const cloudFailure=completion.slice(completion.indexOf('const published=await pushCloudPending()'),completion.indexOf('let durableMeta='));
|
||||
assert(completion.includes('writeDirtyRecoveryJournal();')&&cloudFailure.includes("toast('クリアは端末に保存しました。共有反映は自動で再試行します。')")&&cloudFailure.includes('armCloudPush(1000)')&&!cloudFailure.includes('data.states[b.id]=previous.state'),'Completion is not checkpointed immediately or is still rolled back on a transient cloud failure');
|
||||
const cloudFailure=completion.slice(completion.indexOf('let published=false'),completion.indexOf('const immediateBoard='));
|
||||
assert(completion.includes('writeDirtyRecoveryJournal();')&&cloudFailure.includes('for(let attempt=0;attempt<3&&!published;attempt++)')&&cloudFailure.includes('data.states[b.id]=previous.state')&&cloudFailure.includes('await persistNow({skipCloud:true})'),'Completion is not verified by the shared server or is left locally solved after publication failure');
|
||||
|
||||
const overlay={dataset:{},classList:{values:new Set(),toggle(name,on){on?this.values.add(name):this.values.delete(name)}},replaceChildren(node){this.child=node;this.textContent=''},textContent:'',style:{}};
|
||||
const cursorItems=new Map([['emoji-test',{cursorStyle:'emoji-test',cursorEmoji:'🙂'}]]);
|
||||
|
|
@ -26,4 +26,4 @@ assert(context.syncPickupHandleDesign()===true&&overlay.textContent==='🙂'&&ov
|
|||
context.data.cursorStyle='flag-test';cursorItems.set('flag-test',{cursorStyle:'flag-test',flagAsset:'flag.svg'});context.syncPickupHandleDesign();
|
||||
assert(overlay.child?.src==='flag.svg'&&overlay.classList.values.has('flag-cursor'),'Flag cursor was not applied to the pickup overlay');
|
||||
|
||||
console.log('v47.83 pickup release, durable completion, and cursor-design regression test passed');
|
||||
console.log('v47.84 pickup release, durable completion, and cursor-design regression test passed');
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue