feat: add email and phoneNumber formatters (#11050)

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
This commit is contained in:
Almeida
2025-08-26 22:26:05 +01:00
committed by Jiralite
parent 2da2fa01b2
commit bf0430f998
2 changed files with 83 additions and 0 deletions

View File

@@ -29,6 +29,8 @@ import {
underline,
unorderedList,
userMention,
email,
phoneNumber,
} from '../src/index.js';
describe('Message formatters', () => {
@@ -335,6 +337,33 @@ describe('Message formatters', () => {
});
});
describe('email', () => {
test('GIVEN an email THEN returns "<[email]>"', () => {
expect<'<test@example.com>'>(email('test@example.com')).toEqual('<test@example.com>');
});
test('GIVEN an email AND headers THEN returns "<[email]?[headers]>"', () => {
expect<`<test@example.com?${string}>`>(email('test@example.com', { subject: 'Hello', body: 'World' })).toEqual(
'<test@example.com?subject=Hello&body=World>',
);
});
});
describe('phoneNumber', () => {
test('GIVEN a phone number with + THEN returns "<[phoneNumber]>"', () => {
expect<'<+1234567890>'>(phoneNumber('+1234567890')).toEqual('<+1234567890>');
});
test('GIVEN a phone number without + THEN throws', () => {
expect(() =>
phoneNumber(
// @ts-expect-error - Invalid input
'1234567890',
),
).toThrowError();
});
});
describe('Faces', () => {
test('GIVEN Faces.Shrug THEN returns "¯\\_(ツ)_/¯"', () => {
expect<'¯\\_(ツ)_/¯'>(Faces.Shrug).toEqual('¯\\_(ツ)_/¯');