token.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. const token = require('../lib/token');
  2. describe('token', function () {
  3. context('string input', function () {
  4. context('contains valid token', function () {
  5. it('returns token as string', function () {
  6. expect(token('a9d0ed10e9cfd022a61cb08753f49c5a0b0dfb784697bf9f9d750a1003da19c7')).to.equal(
  7. 'a9d0ed10e9cfd022a61cb08753f49c5a0b0dfb784697bf9f9d750a1003da19c7'
  8. );
  9. });
  10. it('strips invalid characters', function () {
  11. expect(
  12. token('<a9d0ed1 0e9cfd 022a61 cb0875 3f49c5 a0b0d fb784697bf9f9d750a1003da19c7>')
  13. ).to.equal('a9d0ed10e9cfd022a61cb08753f49c5a0b0dfb784697bf9f9d750a1003da19c7');
  14. });
  15. it('supports uppercase input', function () {
  16. expect(token('A9D0ED10E9CFD022A61CB08753F49C5A0B0DFB784697BF9F9D750A1003DA19C7')).to.equal(
  17. 'A9D0ED10E9CFD022A61CB08753F49C5A0B0DFB784697BF9F9D750A1003DA19C7'
  18. );
  19. });
  20. });
  21. it('throws when input is empty', function () {
  22. expect(function () {
  23. token('');
  24. }).to.throw(/invalid length/);
  25. });
  26. });
  27. context('Buffer input', function () {
  28. context('contains valid token', function () {
  29. it('returns token as string', function () {
  30. expect(
  31. token(
  32. Buffer.from('a9d0ed10e9cfd022a61cb08753f49c5a0b0dfb784697bf9f9d750a1003da19c7', 'hex')
  33. )
  34. ).to.equal('a9d0ed10e9cfd022a61cb08753f49c5a0b0dfb784697bf9f9d750a1003da19c7');
  35. });
  36. });
  37. it('throws when input is empty', function () {
  38. expect(function () {
  39. token(Buffer.from([]));
  40. }).to.throw(/invalid length/);
  41. });
  42. });
  43. });