UNPKG

2.17 kBPlain TextView Raw
1import Hashids from '../lib/hashids'
2
3const minLength = 30
4const hashids = new Hashids(
5 'this is my salt',
6 minLength,
7 'xzal86grmb4jhysfoqp3we7291kuct5iv0nd',
8)
9
10describe.each([
11 ['nej1m3d5a6yn875e7gr9kbwpqol02q', [0]],
12 ['dw1nqdp92yrajvl9v6k3gl5mb0o8ea', [1]],
13 ['onqr0bk58p642wldq14djmw21ygl39', [928728]],
14 ['18apy3wlqkjvd5h1id7mn5ore2d06b', [1, 2, 3]],
15 ['o60edky1ng3vl9hbfavwr5pa2q8mb9', [1, 0, 0]],
16 ['o60edky1ng3vlqfbfp4wr5pa2q8mb9', [0, 0, 1]],
17 ['qek2a08gpl575efrfd7yomj9dwbr63', [0, 0, 0]],
18 ['m3d5a6yn875rae8y81a94gr9kbwpqo', [1000000000000]],
19 ['1q3y98ln48w96kpo0wgk314w5mak2d', [9007199254740991]],
20 ['op7qrcdc3cgc2c0cbcrcoc5clce4d6', [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]],
21 ['5430bd2jo0lxyfkfjfyojej5adqdy4', [10000000000, 0, 0, 0, 999999999999999]],
22 [
23 'aa5kow86ano1pt3e1aqm239awkt9pk380w9l3q6',
24 [9007199254740991, 9007199254740991, 9007199254740991],
25 ],
26 [
27 'mmmykr5nuaabgwnohmml6dakt00jmo3ainnpy2mk',
28 [1000000001, 1000000002, 1000000003, 1000000004, 1000000005],
29 ],
30 [
31 'w1hwinuwt1cbs6xwzafmhdinuotpcosrxaz0fahl',
32 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20],
33 ],
34 // bigint format:
35 ...(typeof BigInt === 'function'
36 ? require('./bigint-test-cases').customParams
37 : []),
38] as [string, (number | bigint)[]][])(
39 'encode/decode using custom params',
40 (id, numbers) => {
41 test(`should encode [${numbers}] to '${id}' (passing array of numbers)`, () => {
42 expect(id).toEqual(hashids.encode(numbers))
43 })
44
45 test(`should decode '${id}' to '${numbers.join(', ')}'`, () => {
46 expect(hashids.decode(id)).toEqual(numbers)
47 })
48
49 test(`should encode [${numbers}] to '${id}' (passing numbers)`, () => {
50 expect(id).toEqual(hashids.encode(...numbers))
51 })
52
53 test(`should encode [${numbers}] to '${id}' and decode back correctly`, () => {
54 const encodedId = hashids.encode(numbers)
55 const decodedNumbers = hashids.decode(encodedId)
56
57 expect(numbers).toEqual(decodedNumbers)
58 })
59
60 test(`id length should be at least ${minLength}`, () => {
61 expect(hashids.encode(numbers).length).toBeGreaterThanOrEqual(minLength)
62 })
63 },
64)