feat: 完成前端业务闭环与后端联调
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
import assert from 'node:assert/strict'
|
||||
import fs from 'node:fs'
|
||||
|
||||
const toModuleUrl = (source) =>
|
||||
`data:text/javascript;base64,${Buffer.from(source).toString('base64')}`
|
||||
|
||||
const routesSource = fs.readFileSync('utils/navigation/routes.js', 'utf8')
|
||||
const gatewaySource = fs.readFileSync('utils/navigation/gateway.js', 'utf8')
|
||||
.replace('"./routes.js"', JSON.stringify(toModuleUrl(routesSource)))
|
||||
|
||||
let currentPage = { route: 'pages/profile/home' }
|
||||
const relaunchCalls = []
|
||||
globalThis.getCurrentPages = () => [currentPage]
|
||||
globalThis.uni = {
|
||||
reLaunch(options) {
|
||||
relaunchCalls.push(options)
|
||||
},
|
||||
}
|
||||
|
||||
const { goRoot, recoverToAuthRoot } = await import(toModuleUrl(gatewaySource))
|
||||
|
||||
const ordinaryNavigation = goRoot('G01')
|
||||
const sessionRecovery = recoverToAuthRoot()
|
||||
|
||||
assert.equal(relaunchCalls.length, 1, '登录恢复应等待已有转场完成')
|
||||
assert.equal(relaunchCalls[0].url, '/pages/genealogy/my-genealogies')
|
||||
|
||||
currentPage = { route: 'pages/genealogy/my-genealogies' }
|
||||
relaunchCalls[0].success()
|
||||
await ordinaryNavigation
|
||||
await Promise.resolve()
|
||||
|
||||
assert.equal(relaunchCalls.length, 2, '已有转场完成后必须继续登录恢复')
|
||||
assert.equal(relaunchCalls[1].url, '/pages/auth/sign-in')
|
||||
|
||||
currentPage = { route: 'pages/auth/sign-in' }
|
||||
relaunchCalls[1].success()
|
||||
assert.equal(await sessionRecovery, true)
|
||||
|
||||
console.log('NAVIGATION RECOVERY CHECK PASS')
|
||||
Reference in New Issue
Block a user