import * as assert from 'assert'; import { ArrayHelper } from './array.helper'; import { DotNotationHelper } from './dot-notation.helper'; describe('Dot Notation Helper', () => { describe('#setValue(path: string, obj: T, value: any)', () => { it('[emailAddress]', () => { const obj = DotNotationHelper.setValue( 'emailAddress', { emailAddress: 'foo.bar@example.com', name: { full: 'Foo Bar', }, }, 'john.doe@example.com' ); assert.strictEqual(obj['emailAddress'], 'john.doe@example.com'); }); it('[name.full]', () => { const obj = DotNotationHelper.setValue( 'name.full', { emailAddress: 'foo.bar@example.com', name: { full: 'Foo Bar', }, }, 'John Doe' ); assert.strictEqual(obj['name']['full'], 'John Doe'); }); it('[1]', () => { const obj = DotNotationHelper.setValue('1', [1, 2, 3, 4, 5], 10); assert.strictEqual(obj[1], 10); }); it('[1.emailAddress]', () => { const obj = DotNotationHelper.setValue( '1.emailAddress', ArrayHelper.repeat( { emailAddress: 'foo.bar@example.com', name: { full: 'Foo Bar', }, }, 5 ), 'john.doe@example.com' ); assert.strictEqual(obj[1]['emailAddress'], 'john.doe@example.com'); }); it('[1.name.full]', () => { const obj = DotNotationHelper.setValue( '1.name.full', ArrayHelper.repeat( { emailAddress: 'foo.bar@example.com', name: { full: 'Foo Bar', }, }, 5 ), 'John Doe' ); assert.strictEqual(obj[1]['name']['full'], 'John Doe'); }); }); });