Files
sentinel/static/app/utils/middleEllipsis.spec.tsx
2024-02-15 17:01:50 +00:00

39 lines
1.4 KiB
TypeScript

import {middleEllipsis} from 'sentry/utils/middleEllipsis';
describe('middleEllipsis', function () {
it('returns slug if it is already short enough', function () {
expect(middleEllipsis('javascript', 20, ' ')).toBe('javascript');
});
it('trims long but unhyphenated slug', function () {
expect(middleEllipsis('javascriptfrontendproject', 20, ' ')).toBe(
'javascriptfrontendp…'
);
});
it('trims slug from the middle, preserves whole words', function () {
expect(middleEllipsis('symbol collector console', 20, ' ')).toBe('symbol…console');
expect(middleEllipsis('symbol collector mobile', 20, ' ')).toBe('symbol…mobile');
expect(middleEllipsis('visual snapshot cloud run', 20, ' ')).toBe('visual…cloud run');
expect(middleEllipsis('visual snapshot.cloud-run', 20, / |\./)).toBe(
'visual…cloud-run'
);
expect(
middleEllipsis(
'visual collector.console-running on_cloud.technology-task.with_luck',
50,
/ |\.|-|_|\s/
)
).toBe('visual collector.console…technology-task.with_luck');
});
it('trims slug from the middle, cuts whole words', function () {
expect(middleEllipsis('sourcemapsio javascript', 20, ' ')).toBe(
'sourcemaps…javascript'
);
expect(middleEllipsis('armcknight ios.ephemeraldemo', 20, /\.| /)).toBe(
'armcknig…phemeraldemo'
);
});
});