mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-26 18:42:49 +00:00
36 lines
1.2 KiB
TypeScript
36 lines
1.2 KiB
TypeScript
import { chatLocalpart } from './matrix.client';
|
|
|
|
describe('chatLocalpart', () => {
|
|
it('reads from the name, not the id', () => {
|
|
expect(
|
|
chatLocalpart('03f5eb9e-23a0-4413-8d98-8de4b98b1be2', 'Nati Wondi'),
|
|
).toBe('nati-wondi.03f5eb');
|
|
});
|
|
|
|
it('separates two people who share a name', () => {
|
|
// Both of these are real dev rows — same name, different employees.
|
|
const a = chatLocalpart('11111111-1111-4111-8111-111111111111', 'MARKOS REGASA');
|
|
const b = chatLocalpart('22222222-2222-4222-8222-222222222222', 'Markos REGASA');
|
|
expect(a).not.toBe(b);
|
|
});
|
|
|
|
it('is stable for the same person', () => {
|
|
const id = '7d798218-09de-47a1-98eb-f61ec44e9280';
|
|
expect(chatLocalpart(id, 'Naod')).toBe(chatLocalpart(id, 'Naod'));
|
|
});
|
|
|
|
it('still yields a usable localpart for a name that slugs to nothing', () => {
|
|
expect(chatLocalpart('7d798218-09de-47a1-98eb-f61ec44e9280', 'ናኦድ')).toBe(
|
|
'user.7d7982',
|
|
);
|
|
});
|
|
|
|
it('only emits characters Matrix accepts in a localpart', () => {
|
|
for (const name of ['Mubarek Jemal Hassen', "N'gozi O_Brien", 'ናኦድ', 'José']) {
|
|
expect(chatLocalpart('7d798218-09de-47a1-98eb-f61ec44e9280', name)).toMatch(
|
|
/^[a-z0-9._=\-/]+$/,
|
|
);
|
|
}
|
|
});
|
|
});
|