19 行
820 B
TypeScript
19 行
820 B
TypeScript
|
|
import assert from 'node:assert/strict'
|
||
|
|
import test from 'node:test'
|
||
|
|
|
||
|
|
import { decideBackPress } from '../src/backPolicy'
|
||
|
|
|
||
|
|
test('back press always navigates web history before considering page close', () => {
|
||
|
|
assert.equal(decideBackPress('page', true, 2_000, { at: 1_900, pageId: 'page' }), 'goBack')
|
||
|
|
})
|
||
|
|
|
||
|
|
test('back press prompts once and closes only within the one-second window', () => {
|
||
|
|
assert.equal(decideBackPress('page', false, 2_000, null), 'prompt')
|
||
|
|
assert.equal(decideBackPress('page', false, 2_999, { at: 2_000, pageId: 'page' }), 'close')
|
||
|
|
assert.equal(decideBackPress('page', false, 3_001, { at: 2_000, pageId: 'page' }), 'prompt')
|
||
|
|
})
|
||
|
|
|
||
|
|
test('pending close state never crosses WebView pages', () => {
|
||
|
|
assert.equal(decideBackPress('second', false, 2_500, { at: 2_000, pageId: 'first' }), 'prompt')
|
||
|
|
})
|