feat: refine login flows and integrate tiangong worship audio

This commit is contained in:
zhouzhibo committed 2026-10-18 23:35:28 +08:00
1 parent bc7bbc52c8
commit 38fc4187ea
49 files changed
+1786 -224

No files matched your search

+5 -2
View File
@@ -23,7 +23,7 @@ test('三个主页面均注册为Tab,切换不使用push/redirect', () => {
test('连续点击只切换一次,完成或失败后均可继续点击', async () => {
const urls = [], notices = []
let complete
const { switchMainTab } = load('src/services/tabNavigation.ts', () => ({ default: {
const { switchMainTab } = load('src/services/tabNavigation.ts', id => id === './loginAccess' ? { hasLoginAccess: () => true } : ({ default: {
switchTab: ({ url }) => { urls.push(url); return new Promise(resolve => { complete = resolve }) },
showToast: value => notices.push(value.title)
} }))
@@ -36,7 +36,7 @@ test('连续点击只切换一次,完成或失败后均可继续点击', async
const next = switchMainTab('my', 'fortune')
complete(); await next
assert.deepEqual(urls, ['/pages/fortune/index', '/pages/my/index'])
const failing = load('src/services/tabNavigation.ts', () => ({ default: {
const failing = load('src/services/tabNavigation.ts', id => id === './loginAccess' ? { hasLoginAccess: () => true } : ({ default: {
switchTab: () => Promise.reject(new Error('offline')), showToast: value => notices.push(value.title)
} }))
await failing.switchMainTab('my')
@@ -50,8 +50,10 @@ test('资料缓存合并并发请求,过期保留快照并重取;失败可
const [a,b] = await Promise.all([cache.load('a', loader), cache.load('a', loader)])
assert.equal(a, b); assert.equal(calls, 1)
await cache.load('a', loader); assert.equal(calls, 1)
assert.equal(cache.peekFresh('a').nickname, 'A')
now = 31
assert.equal(cache.peek('a').nickname, 'A')
assert.equal(cache.peekFresh('a'), undefined)
await assert.rejects(cache.load('a', async () => { throw new Error('offline') }), /offline/)
await cache.load('a', loader); assert.equal(calls, 2)
await cache.load('a', loader, true); assert.equal(calls, 3)
@@ -65,6 +67,7 @@ test('保存后的新资料不会被旧请求覆盖,不同账号不共用缓
finish({ nickname: 'Old' })
assert.equal((await old).nickname, 'New')
assert.equal(cache.peek('b'), undefined)
assert.equal(cache.peekFresh('b'), undefined)
let resolveA
const readA = cache.load('a', () => new Promise(resolve => { resolveA = resolve }))
await Promise.resolve()