You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

utils.test.js 2.3KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import {
  2. basename, extname, isObject, uniq, stripTags, joinPaths,
  3. } from './utils.js';
  4. test('basename', () => {
  5. expect(basename('/path/to/file.js')).toEqual('file.js');
  6. expect(basename('/path/to/file')).toEqual('file');
  7. expect(basename('file.js')).toEqual('file.js');
  8. });
  9. test('extname', () => {
  10. expect(extname('/path/to/file.js')).toEqual('.js');
  11. expect(extname('/path/')).toEqual('');
  12. expect(extname('/path')).toEqual('');
  13. expect(extname('file.js')).toEqual('.js');
  14. });
  15. test('joinPaths', () => {
  16. expect(joinPaths('', '')).toEqual('');
  17. expect(joinPaths('', 'b')).toEqual('b');
  18. expect(joinPaths('', '/b')).toEqual('/b');
  19. expect(joinPaths('', '/b/')).toEqual('/b/');
  20. expect(joinPaths('a', '')).toEqual('a');
  21. expect(joinPaths('/a', '')).toEqual('/a');
  22. expect(joinPaths('/a/', '')).toEqual('/a/');
  23. expect(joinPaths('a', 'b')).toEqual('a/b');
  24. expect(joinPaths('a', '/b')).toEqual('a/b');
  25. expect(joinPaths('/a', '/b')).toEqual('/a/b');
  26. expect(joinPaths('/a', '/b')).toEqual('/a/b');
  27. expect(joinPaths('/a/', '/b')).toEqual('/a/b');
  28. expect(joinPaths('/a', '/b/')).toEqual('/a/b/');
  29. expect(joinPaths('/a/', '/b/')).toEqual('/a/b/');
  30. expect(joinPaths('', '', '')).toEqual('');
  31. expect(joinPaths('', 'b', '')).toEqual('b');
  32. expect(joinPaths('', 'b', 'c')).toEqual('b/c');
  33. expect(joinPaths('', '', 'c')).toEqual('c');
  34. expect(joinPaths('', '/b', '/c')).toEqual('/b/c');
  35. expect(joinPaths('/a', '', '/c')).toEqual('/a/c');
  36. expect(joinPaths('/a', '/b', '')).toEqual('/a/b');
  37. expect(joinPaths('', '/')).toEqual('/');
  38. expect(joinPaths('a', '/')).toEqual('a/');
  39. expect(joinPaths('', '/', '/')).toEqual('/');
  40. expect(joinPaths('/', '/')).toEqual('/');
  41. expect(joinPaths('/', '')).toEqual('/');
  42. expect(joinPaths('/', 'b')).toEqual('/b');
  43. expect(joinPaths('/', 'b/')).toEqual('/b/');
  44. expect(joinPaths('/', '', '/')).toEqual('/');
  45. expect(joinPaths('/', 'b', '/')).toEqual('/b/');
  46. expect(joinPaths('/', 'b/', '/')).toEqual('/b/');
  47. expect(joinPaths('a', '/', '/')).toEqual('a/');
  48. expect(joinPaths('/', '/', 'c')).toEqual('/c');
  49. expect(joinPaths('/', '/', 'c/')).toEqual('/c/');
  50. });
  51. test('isObject', () => {
  52. expect(isObject({})).toBeTrue();
  53. expect(isObject([])).toBeFalse();
  54. });
  55. test('uniq', () => {
  56. expect(uniq([1, 1, 1, 2])).toEqual([1, 2]);
  57. });
  58. test('stripTags', () => {
  59. expect(stripTags('<a>test</a>')).toEqual('test');
  60. });