@tdb/util
Version:
Shared helpers and utilities.
83 lines (74 loc) • 2.2 kB
text/typescript
import { expect } from 'chai';
import { value } from '.';
const { defaultValue } = value;
describe('defaultValue', () => {
it('does not change the given value', () => {
expect(defaultValue(1)).to.eql(1);
expect(defaultValue(1, 2)).to.eql(1);
expect(defaultValue(0, 2)).to.eql(0);
expect(defaultValue(undefined)).to.eql(undefined);
expect(defaultValue('foo', 'bar')).to.eql('foo');
expect(defaultValue('', 'bar')).to.eql('');
expect(defaultValue<boolean>(true, false)).to.eql(true);
expect(defaultValue<boolean>(false, true)).to.eql(false);
});
it('uses the given default value', () => {
expect(defaultValue(undefined, 1)).to.eql(1);
expect(defaultValue<string>(undefined, 'bar')).to.eql('bar');
expect(defaultValue<string>('' || undefined, 'bar')).to.eql('bar');
expect(defaultValue<{ foo: number }>(undefined, { foo: 123 })).to.eql({
foo: 123,
});
expect(defaultValue<boolean>(undefined, false)).to.eql(false);
expect(defaultValue<boolean>(undefined, true)).to.eql(true);
});
});
describe('deleteUndefined', () => {
it('retains existing values, removes undefined', () => {
const res = value.deleteUndefined({
nothing: undefined,
yes: true,
no: false,
zero: 0,
value: null,
text: '',
});
expect(res).to.eql({
yes: true,
no: false,
zero: 0,
value: null,
text: '',
});
});
});
describe('deleteEmpty', () => {
it('deletes empty/undefined values', () => {
const res = value.deleteEmpty({
nothing: undefined,
yes: true,
no: false,
zero: 0,
value: null,
text: '',
});
expect(res).to.eql({
yes: true,
no: false,
zero: 0,
value: null,
});
});
});
describe('isStatusOk', () => {
it('is ok', async () => {
expect(value.isStatusOk(200)).to.eql(true);
expect(value.isStatusOk(201)).to.eql(true);
});
it('is not ok', async () => {
expect(value.isStatusOk(404)).to.eql(false);
expect(value.isStatusOk(500)).to.eql(false);
expect(value.isStatusOk(0)).to.eql(false);
expect(value.isStatusOk(undefined as any)).to.eql(false);
});
});