XuqmGroup-RNSDK/packages/xwebview/tests/backPolicy.test.ts

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')
})