middleEllipsis.spec.tsx 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import {middleEllipsis} from 'sentry/utils/middleEllipsis';
  2. describe('middleEllipsis', function () {
  3. it('returns slug if it is already short enough', function () {
  4. expect(middleEllipsis('javascript', 20, ' ')).toBe('javascript');
  5. });
  6. it('trims long but unhyphenated slug', function () {
  7. expect(middleEllipsis('javascriptfrontendproject', 20, ' ')).toBe(
  8. 'javascriptfrontendp…'
  9. );
  10. });
  11. it('trims slug from the middle, preserves whole words', function () {
  12. expect(middleEllipsis('symbol collector console', 20, ' ')).toBe('symbol…console');
  13. expect(middleEllipsis('symbol collector mobile', 20, ' ')).toBe('symbol…mobile');
  14. expect(middleEllipsis('visual snapshot cloud run', 20, ' ')).toBe('visual…cloud run');
  15. expect(middleEllipsis('visual snapshot.cloud-run', 20, / |\./)).toBe(
  16. 'visual…cloud-run'
  17. );
  18. expect(
  19. middleEllipsis(
  20. 'visual collector.console-running on_cloud.technology-task.with_luck',
  21. 50,
  22. / |\.|-|_|\s/
  23. )
  24. ).toBe('visual collector.console…technology-task.with_luck');
  25. });
  26. it('trims slug from the middle, cuts whole words', function () {
  27. expect(middleEllipsis('sourcemapsio javascript', 20, ' ')).toBe(
  28. 'sourcemaps…javascript'
  29. );
  30. expect(middleEllipsis('armcknight ios.ephemeraldemo', 20, /\.| /)).toBe(
  31. 'armcknig…phemeraldemo'
  32. );
  33. });
  34. });