n8n/packages/design-system/src/utils/labelUtil.test.ts

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

57 lines
1.2 KiB
TypeScript
Raw Normal View History

import type { MockInstance } from 'vitest';
import { getInitials } from './labelUtil';
describe('labelUtil.getInitials', () => {
it.each([
['', ''],
// simple words
['Hello', 'He'],
['Hello World', 'HW'],
['H', 'H'],
// multiple spaces
['Double Space', 'DS'],
[' ', ''],
// simple emoji
['👋 Hello', '👋H'],
['👋Hello', '👋H'],
['Hello 👋', 'H👋'],
['Hello👋', 'He'],
// combined emojis
['1⃣ 1⃣', '1⃣1⃣'],
['1⃣', '1⃣'],
['👩D 👩D', '👩‍⚕️👩‍⚕️'],
])('turns "%s" into "%s"', (input, output) => {
expect(getInitials(input)).toBe(output);
});
describe('when Intl.Segmenter is not supported', () => {
let intlSpy: MockInstance;
beforeEach(() => {
// No Intl.Segmenter support
intlSpy = vi.spyOn(globalThis, 'Intl', 'get');
intlSpy.mockImplementation(() => ({}));
});
it.each([
['', ''],
// simple words
['Hello', 'He'],
['Hello World', 'HW'],
['H', 'H'],
// multiple spaces
['Double Space', 'DS'],
[' ', ''],
])('turns "%s" into "%s"', (input, output) => {
expect(getInitials(input)).toBe(output);
});
});
});