@mapbox/mr-ui
Version:
UI components for Mapbox projects
67 lines (66 loc) • 1.67 kB
JavaScript
;
var _omit = _interopRequireDefault(require("./omit"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
describe('omit', () => {
test('empty arguments work', () => {
expect((0, _omit.default)()).toEqual({});
expect((0, _omit.default)({})).toEqual({});
expect((0, _omit.default)(undefined, [])).toEqual({});
});
test('removes unwanted properties', () => {
const original = {
foo: 1,
bar: 2
};
expect((0, _omit.default)(original, ['foo'])).toEqual({
bar: 2
});
expect((0, _omit.default)(original, ['bar'])).toEqual({
foo: 1
});
expect((0, _omit.default)(original, ['foo', 'bar'])).toEqual({});
expect((0, _omit.default)(original, [])).toEqual({
foo: 1,
bar: 2
});
});
test('does not confused similar properties', () => {
const original = {
foo: 1,
foop: 2,
'foo-bar': 3,
afoo: 4
};
expect((0, _omit.default)(original, ['foo'])).toEqual({
foop: 2,
'foo-bar': 3,
afoo: 4
});
});
test('creates a new object', () => {
const original = {
foo: 1
};
const result = (0, _omit.default)(original, []);
expect(result).toEqual({
foo: 1
});
expect(result === original).toBe(false);
});
test('maintains references to objects', () => {
const original = {
foo: 1,
bar: {
baz: 3
},
baz: 4
};
const result = (0, _omit.default)(original, ['foo', 'baz']);
expect(result).toEqual({
bar: {
baz: 3
}
});
expect(result.bar === original.bar).toBe(true);
});
});