Files
lodash/test/mapKeys-and-mapValues.spec.js
2023-09-16 22:59:56 -07:00

36 lines
1.2 KiB
JavaScript

import lodashStable from 'lodash';
import { _, falsey, stubObject, noop } from './utils';
describe('mapKeys and mapValues', () => {
lodashStable.each(['mapKeys', 'mapValues'], (methodName) => {
const func = _[methodName];
const object = { a: 1, b: 2 };
it(`\`_.${methodName}\` should iterate over own string keyed properties of objects`, () => {
function Foo() {
this.a = 'a';
}
Foo.prototype.b = 'b';
const actual = func(new Foo(), (value, key) => key);
expect(actual).toEqual({ a: 'a' });
});
it(`\`_.${methodName}\` should accept a falsey \`object\``, () => {
const expected = lodashStable.map(falsey, stubObject);
const actual = lodashStable.map(falsey, (object, index) => {
try {
return index ? func(object) : func();
} catch (e) {}
});
expect(actual).toEqual(expected);
});
it(`\`_.${methodName}\` should return a wrapped value when chaining`, () => {
expect(_(object)[methodName](noop) instanceof _);
});
});
});