Files
SubMiner/src/main/runtime/numeric-shortcut-session-handlers.test.ts

43 lines
1.2 KiB
TypeScript

import test from 'node:test';
import assert from 'node:assert/strict';
import {
createCancelNumericShortcutSessionHandler,
createStartNumericShortcutSessionHandler,
} from './numeric-shortcut-session-handlers';
test('cancel numeric shortcut session handler cancels active session', () => {
const calls: string[] = [];
const cancel = createCancelNumericShortcutSessionHandler({
session: {
start: () => {},
cancel: () => calls.push('cancel'),
},
});
cancel();
assert.deepEqual(calls, ['cancel']);
});
test('start numeric shortcut session handler forwards timeout, messages, and onDigit', () => {
const calls: string[] = [];
const start = createStartNumericShortcutSessionHandler({
session: {
cancel: () => {},
start: ({ timeoutMs, onDigit, messages }) => {
calls.push(`timeout:${timeoutMs}`);
calls.push(`prompt:${messages.prompt}`);
onDigit(3);
},
},
onDigit: (digit) => calls.push(`digit:${digit}`),
messages: {
prompt: 'Prompt',
timeout: 'Timeout',
cancelled: 'Cancelled',
},
});
start(1200);
assert.deepEqual(calls, ['timeout:1200', 'prompt:Prompt', 'digit:3']);
});