mirror of
https://github.com/signalapp/Signal-Desktop.git
synced 2026-08-28 08:55:07 +01:00
44 lines
1.4 KiB
TypeScript
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
|
|
);
|
|
});
|
|
});
|