fix(ota): settle stale firmware update states
This commit is contained in:
@@ -99,6 +99,39 @@ test('a failed update with a newer version still offers a retry', () => {
|
||||
assert.equal(firmwareProgressView(pending).failed, true)
|
||||
})
|
||||
|
||||
test('an active update whose target version is already installed is settled', () => {
|
||||
const settled = {
|
||||
...currentFirmware,
|
||||
current_version: '1.8.3',
|
||||
latest_version: '1.8.4',
|
||||
target_version: '1.8.3',
|
||||
update_available: true,
|
||||
can_update: true,
|
||||
update_status: 'accepted',
|
||||
progress: 0,
|
||||
}
|
||||
assert.deepEqual(firmwareSummaryView(settled), { action: '更新', subtitle: '发现可更新版本' })
|
||||
const view = firmwareProgressView(settled)
|
||||
assert.equal(view.complete, true)
|
||||
assert.equal(view.progress, 100)
|
||||
assert.match(view.message, /已完成更新/)
|
||||
})
|
||||
|
||||
test('an active update below its target stays in progress even at 100 percent', () => {
|
||||
const pending = {
|
||||
...currentFirmware,
|
||||
current_version: '1.8.2',
|
||||
target_version: '1.8.3',
|
||||
latest_version: '1.8.4',
|
||||
update_available: true,
|
||||
can_update: true,
|
||||
update_status: 'updating',
|
||||
progress: 100,
|
||||
}
|
||||
assert.deepEqual(firmwareSummaryView(pending), { action: '查看进度', subtitle: '设备正在更新,请稍候' })
|
||||
assert.equal(firmwareProgressView(pending).complete, false)
|
||||
})
|
||||
|
||||
test('missing or placeholder versions never claim the device is up to date', () => {
|
||||
const cases = [null, ...['', 'unknown', '0.0.0', '--', 'updating'].flatMap(value => [
|
||||
{ ...currentFirmware, current_version: value }, { ...currentFirmware, latest_version: value },
|
||||
|
||||
Reference in New Issue
Block a user