| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- import {expect} from 'chai';
- import {selectObjectKeys} from './select-object-keys.js';
- describe('selectObjectKeys', function () {
- it('returns a new object with selected fields', function () {
- const input = {foo: 'foo', bar: 'bar', baz: 'baz'};
- const result = selectObjectKeys(input, ['bar', 'baz']);
- expect(result).to.be.eql({bar: 'bar', baz: 'baz'});
- });
- it('does not throw an error if a selected property is not found', function () {
- const input = {foo: 'foo', bar: 'bar', baz: 'baz'};
- const result = selectObjectKeys(input, ['bar', 'qux']);
- expect(result).to.be.eql({bar: 'bar'});
- });
- it('throws an error if a given value is not an Object', function () {
- const throwable = () => selectObjectKeys(10, ['key']);
- expect(throwable).to.throw(
- 'The first argument of selectObjectKeys ' +
- 'should be an Object, but 10 given.',
- );
- });
- it('throws an error if a given keys is not an Array', function () {
- const throwable = () => selectObjectKeys({});
- expect(throwable).to.throw(
- 'The second argument of selectObjectKeys ' +
- 'should be an Array of String, but undefined given.',
- );
- });
- it('throws an error if a given keys is not an String', function () {
- const throwable = () => selectObjectKeys({}, [10]);
- expect(throwable).to.throw(
- 'The second argument of selectObjectKeys ' +
- 'should be an Array of String, but 10 given.',
- );
- });
- });
|