96 lines
3.3 KiB
JavaScript
96 lines
3.3 KiB
JavaScript
import {
|
|
toTitleCase,
|
|
toDisplayPhoneNumber,
|
|
formatAddress,
|
|
formatAmountInDollars,
|
|
createOrderedListFromStringOfParagraphs
|
|
} from '@/helpers/text-helper.js';
|
|
|
|
describe('text-helper', () => {
|
|
test.each([
|
|
[undefined, ''],
|
|
[null, ''],
|
|
['', ''],
|
|
['hello world', 'Hello World'],
|
|
['hello world', 'Hello World'],
|
|
['HEllO worLD', 'Hello World'],
|
|
['a991,,:A froG FAMILY', 'A991,,:a Frog Family']
|
|
])(
|
|
'toTitleCase given "%p" returns "%p"',
|
|
(input, expected) => {
|
|
// Act
|
|
const result = toTitleCase(input);
|
|
|
|
// Assert
|
|
expect(result).toEqual(expected);
|
|
}
|
|
);
|
|
test.each([
|
|
[undefined, ''],
|
|
[null, ''],
|
|
['', ''],
|
|
['119', ''],
|
|
['1111999900', '111-199-9900'],
|
|
['111199-9900', '111-199-9900'],
|
|
['111-199-9900', '111-199-9900'],
|
|
['01111999900', '0-111-199-9900'],
|
|
['0-111-199-9900', '0-111-199-9900']
|
|
])(
|
|
'getDisplayPhoneNumber',
|
|
(input, expected) => {
|
|
// Act
|
|
const result = toDisplayPhoneNumber(input);
|
|
|
|
// Assert
|
|
expect(result).toEqual(expected);
|
|
}
|
|
);
|
|
test.each([
|
|
[null, null, null, null, null, ''],
|
|
['123 Main St', null, null, null, null, '123 Main St'],
|
|
['123 main st', 'Apt 4B', null, null, null, '123 Main St, Apt 4b'],
|
|
['123 Main St', 'apt 4B', 'Anytown', null, null, '123 Main St, Apt 4b, Anytown'],
|
|
['123 Main St', 'Apt 4B', 'Anytown', 'ny', null, '123 Main St, Apt 4b, Anytown, ny'],
|
|
['123 Main St', 'Apt 4B', 'AnYtoWn', 'NY', '12345', '123 Main St, Apt 4b, Anytown, NY 12345']
|
|
])('formatAddress(%s, %s, %s, %s, %s) should return %s', (addressLine1, addressLine2, city, state, zipCode, expected) => {
|
|
expect(formatAddress(addressLine1, addressLine2, city, state, zipCode)).toBe(expected);
|
|
});
|
|
test.each([
|
|
[1234.5678, '$1,234.57'],
|
|
['1234.5678', '$1,234.57'],
|
|
[1234.56, '$1,234.56'],
|
|
['1234.56', '$1,234.56'],
|
|
[1234.5, '$1,234.50'],
|
|
['1234.5', '$1,234.50'],
|
|
[1234, '$1,234.00'],
|
|
['1234', '$1,234.00'],
|
|
[0, '$0.00'],
|
|
['0', '$0.00'],
|
|
[NaN, ''],
|
|
['NaN', ''],
|
|
[null, ''],
|
|
['', ''],
|
|
['abc', '']
|
|
])('formatAmountInDollars(%s) should return %s', (amount, expected) => {
|
|
expect(formatAmountInDollars(amount)).toBe(expected);
|
|
});
|
|
describe('createOrderedListFromStringOfParagraphs', () => {
|
|
test('returns orderedlist from paragraph string', () => {
|
|
// Arrange
|
|
const testData = '<p>String one</p><p>String two</p>';
|
|
const expected = '<ol><li>String one</li><li>String two</li></ol>';
|
|
|
|
// Assert
|
|
expect(createOrderedListFromStringOfParagraphs(testData)).toBe(expected);
|
|
});
|
|
|
|
test('returns orderedlist from paragraph string with empty <p> tag', () => {
|
|
// Arrange
|
|
const testData = '<p>String one</p><p>String two</p><p></p>';
|
|
const expected = '<ol><li>String one</li><li>String two</li></ol>';
|
|
|
|
// Assert
|
|
expect(createOrderedListFromStringOfParagraphs(testData)).toBe(expected);
|
|
});
|
|
});
|
|
});
|