forked from lodash/lodash
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinvert.test.js
30 lines (24 loc) · 1.04 KB
/
invert.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import assert from 'assert';
import invert from '../invert.js';
describe('invert', function() {
it('should invert an object', function() {
var object = { 'a': 1, 'b': 2 },
actual = invert(object);
assert.deepStrictEqual(actual, { '1': 'a', '2': 'b' });
assert.deepStrictEqual(invert(actual), { 'a': '1', 'b': '2' });
});
it('should work with values that shadow keys on `Object.prototype`', function() {
var object = { 'a': 'hasOwnProperty', 'b': 'constructor' };
assert.deepStrictEqual(invert(object), { 'hasOwnProperty': 'a', 'constructor': 'b' });
});
it('should work with an object that has a `length` property', function() {
var object = { '0': 'a', '1': 'b', 'length': 2 };
assert.deepStrictEqual(invert(object), { 'a': '0', 'b': '1', '2': 'length' });
});
it('should return a wrapped value when chaining', function() {
var object = { 'a': 1, 'b': 2 },
wrapped = _(object).invert();
assert.ok(wrapped instanceof _);
assert.deepEqual(wrapped.value(), { '1': 'a', '2': 'b' });
});
});