mirror of
https://github.com/sartography/spiff-arena.git
synced 2025-02-05 06:04:32 +00:00
51cfcfa2a5
* autosave form data on change w/ burnettk * tests are now passing and pyl * do not do anything on autosave success w/ burnettk * merged autosave and null form data branches together w/ burnettk --------- Co-authored-by: jasquat <jasquat@users.noreply.github.com>
102 lines
2.5 KiB
TypeScript
102 lines
2.5 KiB
TypeScript
import {
|
|
convertSecondsToFormattedDateString,
|
|
isInteger,
|
|
slugifyString,
|
|
underscorizeString,
|
|
recursivelyChangeNullAndUndefined,
|
|
} from './helpers';
|
|
|
|
test('it can slugify a string', () => {
|
|
expect(slugifyString('hello---world_ and then Some such-')).toEqual(
|
|
'hello-world-and-then-some-such'
|
|
);
|
|
});
|
|
|
|
test('it can underscorize a string', () => {
|
|
expect(underscorizeString('hello---world_ and then Some such-')).toEqual(
|
|
'hello_world_and_then_some_such'
|
|
);
|
|
});
|
|
|
|
test('it can keep the correct date when converting seconds to date', () => {
|
|
const dateString = convertSecondsToFormattedDateString(1666325400);
|
|
expect(dateString).toEqual('2022-10-21');
|
|
});
|
|
|
|
test('it can validate numeric values', () => {
|
|
expect(isInteger('11')).toEqual(true);
|
|
expect(isInteger('hey')).toEqual(false);
|
|
expect(isInteger(' ')).toEqual(false);
|
|
expect(isInteger('1 2')).toEqual(false);
|
|
expect(isInteger(2)).toEqual(true);
|
|
});
|
|
|
|
test('it can replace undefined values in object with null', () => {
|
|
const sampleData = {
|
|
talentType: 'foo',
|
|
rating: 'bar',
|
|
contacts: {
|
|
gmeets: undefined,
|
|
zoom: undefined,
|
|
phone: 'baz',
|
|
awesome: false,
|
|
info: '',
|
|
},
|
|
items: [
|
|
undefined,
|
|
{
|
|
contacts: {
|
|
gmeets: undefined,
|
|
zoom: undefined,
|
|
phone: 'baz',
|
|
},
|
|
},
|
|
'HEY',
|
|
],
|
|
undefined,
|
|
};
|
|
|
|
expect((sampleData.items[1] as any).contacts.zoom).toEqual(undefined);
|
|
|
|
const result = recursivelyChangeNullAndUndefined(sampleData, null);
|
|
expect(result).toEqual(sampleData);
|
|
expect(result.items[1].contacts.zoom).toEqual(null);
|
|
expect(result.items[2]).toEqual('HEY');
|
|
expect(result.contacts.awesome).toEqual(false);
|
|
expect(result.contacts.info).toEqual('');
|
|
});
|
|
|
|
test('it can replace null values in object with undefined', () => {
|
|
const sampleData = {
|
|
talentType: 'foo',
|
|
rating: 'bar',
|
|
contacts: {
|
|
gmeets: null,
|
|
zoom: null,
|
|
phone: 'baz',
|
|
awesome: false,
|
|
info: '',
|
|
},
|
|
items: [
|
|
null,
|
|
{
|
|
contacts: {
|
|
gmeets: null,
|
|
zoom: null,
|
|
phone: 'baz',
|
|
},
|
|
},
|
|
'HEY',
|
|
],
|
|
};
|
|
|
|
expect((sampleData.items[1] as any).contacts.zoom).toEqual(null);
|
|
|
|
const result = recursivelyChangeNullAndUndefined(sampleData, undefined);
|
|
expect(result).toEqual(sampleData);
|
|
expect(result.items[1].contacts.zoom).toEqual(undefined);
|
|
expect(result.items[2]).toEqual('HEY');
|
|
expect(result.contacts.awesome).toEqual(false);
|
|
expect(result.contacts.info).toEqual('');
|
|
});
|