assign.test.ts 1.0 KB

12345678910111213141516171819202122232425262728293031
  1. import { assign } from './assign';
  2. describe( 'assign', () => {
  3. test( 'can assign own enumerable properties of the source object to the target.', () => {
  4. const object = { a: 1, b: '2' };
  5. const source = { a: 2, c: true };
  6. const assigned = assign( object, source );
  7. expect( assigned ).toStrictEqual( { a: 2, b: '2', c: true } );
  8. } );
  9. test( 'can assign properties of multiple sources to the target.', () => {
  10. const object = { a: 1, b: '2' };
  11. const source1 = { a: 2, c: true };
  12. const source2 = { d: 3, e: '3' };
  13. const source3 = { e: Infinity };
  14. const assigned = assign( object, source1, source2, source3 );
  15. expect( assigned ).toStrictEqual( { a: 2, b: '2', c: true, d: 3, e: Infinity } );
  16. } );
  17. test( 'should assign a nested object as a reference.', () => {
  18. const object = { a: { b: 1 } };
  19. const source = { a: { b: 2 } };
  20. const assigned = assign( object, source );
  21. expect( assigned ).toStrictEqual( { a: { b: 2 } } );
  22. expect( source.a ).toBe( assigned.a );
  23. } );
  24. } );