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

39 lines
1.1 KiB
TypeScript

import assert from 'node:assert/strict';
import test from 'node:test';
import {
createBuildCancelNumericShortcutSessionMainDepsHandler,
createBuildStartNumericShortcutSessionMainDepsHandler,
} from './numeric-shortcut-session-main-deps';
test('numeric shortcut session main deps builders map callbacks', () => {
const calls: string[] = [];
const session = {
start: () => calls.push('start'),
cancel: () => calls.push('cancel'),
};
const cancel = createBuildCancelNumericShortcutSessionMainDepsHandler({ session })();
cancel.session.cancel();
const start = createBuildStartNumericShortcutSessionMainDepsHandler({
session,
onDigit: (digit) => calls.push(`digit:${digit}`),
messages: {
prompt: 'prompt',
timeout: 'timeout',
cancelled: 'cancelled',
},
})();
start.session.start({
timeoutMs: 100,
onDigit: () => {},
messages: start.messages,
});
start.onDigit(4);
assert.equal(start.messages.prompt, 'prompt');
assert.equal(start.messages.timeout, 'timeout');
assert.equal(start.messages.cancelled, 'cancelled');
assert.deepEqual(calls, ['cancel', 'start', 'digit:4']);
});