12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- import Hashids from '../lib/hashids';
- import { assert } from 'chai';
- describe('custom alphabet', () => {
- const testAlphabet = (alphabet) => {
- const hashids = new Hashids('', 0, alphabet);
- const numbers = [1, 2, 3];
- const id = hashids.encode(numbers);
- const decodedNumbers = hashids.decode(id);
- assert.deepEqual(decodedNumbers, numbers);
- };
- it(`should work with the worst alphabet`, () => {
- testAlphabet('cCsSfFhHuUiItT01');
- });
- it(`should work with half the alphabet being separators`, () => {
- testAlphabet('abdegjklCFHISTUc');
- });
- it(`should work with exactly 2 separators`, () => {
- testAlphabet('abdegjklmnopqrSF');
- });
- it(`should work with no separators`, () => {
- testAlphabet('abdegjklmnopqrvwxyzABDEGJKLMNOPQRVWXYZ1234567890');
- });
- it(`should work with super long alphabet`, () => {
- testAlphabet('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890`~!@#$%^&*()-_=+\\|\'";:/?.>,<{[}]');
- });
- it(`should work with a weird alphabet`, () => {
- testAlphabet('`~!@#$%^&*()-_=+\\|\'";:/?.>,<{[}]');
- });
- });
|