feat: add mainland-reachable desktop distribution

This commit is contained in:
2026-08-16 23:00:54 +08:00
parent e8eeb4ac72
commit a3e1f11e85
42 changed files with 3661 additions and 191 deletions

View File

@@ -0,0 +1,63 @@
import assert from 'node:assert/strict'
import test from 'node:test'
const nextTurn = () => new Promise(resolve => setImmediate(resolve))
function element(hidden = false) {
return {
disabled: false,
hidden,
textContent: '',
listeners: new Map(),
addEventListener(name, listener) {
this.listeners.set(name, listener)
},
}
}
test('startup waits for an available signed shell update decision', async () => {
const elements = new Map([
['status', element()],
['spinner', element()],
['retry', element(true)],
['detail', element(true)],
['update-panel', element(true)],
['update-notes', element()],
['install-update', element()],
['skip-update', element()],
])
const invokes = []
globalThis.document = {
readyState: 'complete',
getElementById(id) {
return elements.get(id)
},
}
globalThis.window = {
__TAURI__: {
event: { async listen() {} },
core: {
async invoke(command) {
invokes.push(command)
if (command === 'check_shell_update') {
return { version: '1.2.3', notes: 'signed release' }
}
return null
},
},
},
}
await import(new URL('../ui/app.js?update-test', import.meta.url))
await nextTurn()
assert.deepEqual(invokes, ['check_shell_update'])
assert.equal(elements.get('status').textContent, '发现壳更新 1.2.3')
assert.equal(elements.get('update-notes').textContent, 'signed release')
assert.equal(elements.get('update-panel').hidden, false)
await elements.get('skip-update').listeners.get('click')()
await nextTurn()
assert.deepEqual(invokes, ['check_shell_update', 'skip_shell_update'])
assert.equal(elements.get('update-panel').hidden, true)
})