Files
Desktop/ts/test-node/util/normalizePin_test.node.ts

44 lines
1.4 KiB
TypeScript

// Copyright 2026 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import assert from 'node:assert';
import { normalizePin } from '../../util/normalizePin.std.ts';
describe('#normalizePin', () => {
it('trims', () => {
assert.strictEqual(normalizePin(' pin \n '), 'pin');
assert.strictEqual(normalizePin(' \t\npin '), 'pin');
assert.strictEqual(normalizePin('\n\n pin \t\r\t\t'), 'pin');
});
it('normalizes', () => {
assert.strictEqual(
normalizePin('\u00F1'), // integrated tilde
'\u006E\u0303' // separate tilde
);
assert.strictEqual(
normalizePin('\u1E9B\u0323'), // integrated dot above, separate dot below
'\u0073\u0323\u0307' // separate dot for above and below
);
assert.strictEqual(
normalizePin('Am\u00e9lie'), // integrated accent over the e
'Ame\u0301lie' // separate accent for the e
);
});
it('translates numerals', () => {
assert.strictEqual(
normalizePin('٠١٢٣٤٥٦٧٨٩'), // Eastern Arabic numerals
'0123456789' // Western Arabic numerals
);
assert.strictEqual(
normalizePin('᪐᪑᪒᪓᪔᪕᪖᪗᪘᪙'), // Thai Tham numerals
'0123456789' // Western Arabic numerals
);
assert.strictEqual(
normalizePin('⓪①②③④⑤⑥⑦⑧⑨'), // Circled digits
'0123456789' // Western Arabic numerals
);
});
});