wkr-util
Version:
Utility library for wkr project.
77 lines (71 loc) • 1.95 kB
JavaScript
import {map} from '@cullylarson/f'
import {trimStrDeep} from '../esm/'
test('Trims a string.', () => {
expect(trimStrDeep(' a a a ')).toBe('a a a')
expect(trimStrDeep('BBB')).toBe('BBB')
expect(trimStrDeep('C C C')).toBe('C C C')
expect(trimStrDeep(' C C C')).toBe('C C C')
expect(trimStrDeep('C C C ')).toBe('C C C')
})
test('Does not trim non-strings.', () => {
expect(trimStrDeep(834834)).toBe(834834)
expect(trimStrDeep(null)).toBe(null)
expect(trimStrDeep(true)).toBe(true)
expect(trimStrDeep(false)).toBe(false)
expect(trimStrDeep(undefined)).toBe(undefined)
})
test('Can use it to map an object.', () => {
expect(map(trimStrDeep, {
aaa: ' A A A ',
bbb: null,
ccc: 'CCC',
ddd: {eee: ' E E E '},
})).toEqual({
aaa: 'A A A',
bbb: null,
ccc: 'CCC',
ddd: {eee: 'E E E'},
})
})
test('Deep trims objects.', () => {
expect(trimStrDeep({
aaa: ' AAA ',
bbb: null,
ccc: {
ddd: ' D D D ',
eee: [' one', 'two ', 'three', ' four '],
},
fff: [' aaa', 'bbb ', 'ccc', ' ddd ', {ggg: ' GGG '}],
ggg: 123,
})).toEqual({
aaa: 'AAA',
bbb: null,
ccc: {
ddd: 'D D D',
eee: ['one', 'two', 'three', 'four'],
},
fff: ['aaa', 'bbb', 'ccc', 'ddd', {ggg: 'GGG'}],
ggg: 123,
})
})
test('Deep trims arrays.', () => {
expect(trimStrDeep([
' AAA ',
null,
123,
{
ddd: ' D D D ',
eee: [' one', 'two ', 'three', ' four '],
},
[' aaa', 'bbb ', 'ccc', ' ddd ', {ggg: ' GGG '}],
])).toEqual([
'AAA',
null,
123,
{
ddd: 'D D D',
eee: ['one', 'two', 'three', 'four'],
},
['aaa', 'bbb', 'ccc', 'ddd', {ggg: 'GGG'}],
])
})