d
This commit is contained in:
parent
c3a6f5ff37
commit
4c4e767ec6
73 changed files with 3502 additions and 741 deletions
19
test/v4798-startup-version-retry-smoke-test.js
Normal file
19
test/v4798-startup-version-retry-smoke-test.js
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
'use strict';
|
||||
const assert=require('assert/strict');
|
||||
const {read,functionSource}=require('./helpers/app-source');
|
||||
const app=read('app.js'),server=read('server.js'),service=read('scripts/service-control.js');
|
||||
assert(functionSource('fetchCurrentSharedWorldStatus').includes('status.appVersion===APP_VERSION'),'Startup does not verify the running server release');
|
||||
assert(functionSource('fetchCurrentSharedWorldStatus').includes('npm start'),'Version mismatch does not provide the correct server restart action');
|
||||
assert(functionSource('runStatusRetry').includes('statusRetryAction')&&functionSource('runStatusRetry').includes('await action()'),'Retry does not rerun the selected connection action');
|
||||
assert(!app.includes('復元用バックアップがありません。')&&!app.includes("onclick=retryRecovery"),'Startup retry can still enter obsolete backup recovery');
|
||||
assert(server.includes('appVersion:BuildMeta.APP_VERSION'),'Cloud status does not identify the server release');
|
||||
assert(functionSource('initCloudSync').includes('await activateSingleSharedClientCache()'),'Startup does not activate the new server-authoritative client cache epoch');
|
||||
assert(functionSource('initCloudSync').includes('stateIds:Object.keys(data.states)'),'Initial board state is omitted from the first shared-world commit');
|
||||
assert(functionSource('initCloudSync').includes("persistNow({skipCloud:true})"),'Initial shared board is read from IndexedDB before the new epoch is committed');
|
||||
assert(functionSource('mergeGlobalFields').includes('Math.max'),'Incremental shared-world pulls do not have a defined global merge path');
|
||||
assert(functionSource('pullCloudWorld').includes('cloudSyncing=false;setCloudStatus()')&&functionSource('pushCloudPending').includes('cloudSyncing=false;setCloudStatus()'),'Shared indicator can remain stuck in the syncing state');
|
||||
assert(functionSource('disconnectRealtimeForLifecycle').includes('keepalive:true'),'HTTP polling presence is not disconnected when the page closes');
|
||||
assert(read('realtime-server.js').includes("claim.ownerPresenceId === client.id")&&read('realtime-server.js').includes("releaseBoardClaim(boardId, 'disconnected')"),'Disconnected clients can retain board claims');
|
||||
|
||||
assert(service.includes('Replacing the running LinkField server')&&functionSource('start',service).indexOf('await stop({quiet:true})')<functionSource('start',service).indexOf('deployPublicFiles()'),'npm start does not replace a stale server before deployment');
|
||||
console.log('LinkField v48.0 startup version and retry regression test passed');
|
||||
Loading…
Add table
Add a link
Reference in a new issue