custom-params.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import Hashids from '../lib/hashids';
  2. import { assert } from 'chai';
  3. const minLength = 30;
  4. const hashids = new Hashids('this is my salt', minLength, 'xzal86grmb4jhysfoqp3we7291kuct5iv0nd');
  5. const map = {
  6. 'nej1m3d5a6yn875e7gr9kbwpqol02q': [0],
  7. 'dw1nqdp92yrajvl9v6k3gl5mb0o8ea': [1],
  8. 'onqr0bk58p642wldq14djmw21ygl39': [928728],
  9. '18apy3wlqkjvd5h1id7mn5ore2d06b': [1, 2, 3],
  10. 'o60edky1ng3vl9hbfavwr5pa2q8mb9': [1, 0, 0],
  11. 'o60edky1ng3vlqfbfp4wr5pa2q8mb9': [0, 0, 1],
  12. 'qek2a08gpl575efrfd7yomj9dwbr63': [0, 0, 0],
  13. 'm3d5a6yn875rae8y81a94gr9kbwpqo': [1000000000000],
  14. '1q3y98ln48w96kpo0wgk314w5mak2d': [9007199254740991],
  15. 'op7qrcdc3cgc2c0cbcrcoc5clce4d6': [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
  16. '5430bd2jo0lxyfkfjfyojej5adqdy4': [10000000000, 0, 0, 0, 999999999999999],
  17. 'aa5kow86ano1pt3e1aqm239awkt9pk380w9l3q6': [9007199254740991, 9007199254740991, 9007199254740991],
  18. 'mmmykr5nuaabgwnohmml6dakt00jmo3ainnpy2mk': [1000000001, 1000000002, 1000000003, 1000000004, 1000000005],
  19. 'w1hwinuwt1cbs6xwzafmhdinuotpcosrxaz0fahl': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
  20. };
  21. describe('encode/decode using custom params', () => {
  22. for (const id in map) {
  23. const numbers = map[id];
  24. it(`should encode [${numbers}] to '${id}' (passing array of numbers)`, () => {
  25. assert.equal(id, hashids.encode(numbers));
  26. });
  27. it(`should encode [${numbers}] to '${id}' (passing numbers)`, () => {
  28. assert.equal(id, hashids.encode.apply(hashids, numbers));
  29. });
  30. it(`should encode [${numbers}] to '${id}' and decode back correctly`, () => {
  31. const encodedId = hashids.encode(numbers);
  32. const decodedNumbers = hashids.decode(encodedId);
  33. assert.deepEqual(numbers, decodedNumbers);
  34. });
  35. it(`id length should be at least ${minLength}`, () => {
  36. assert.isAtLeast(hashids.encode(numbers).length, minLength);
  37. });
  38. }
  39. });