custom-alphabet.js
1.0 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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('`~!@#$%^&*()-_=+\\|\'";:/?.>,<{[}]');
});
});