forked from facebook/react
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathobjMap-test.js
More file actions
113 lines (102 loc) · 2.29 KB
/
objMap-test.js
File metadata and controls
113 lines (102 loc) · 2.29 KB
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
/**
* Copyright 2013 Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* @emails react-core
*/
"use strict";
var objMap = require('objMap');
describe('objMap', function() {
var obj = {
A: 'apple',
B: 'banana',
C: 'coconut',
D: 'durian',
E: 'elderberry',
F: 'fig',
G: 'guava',
H: 'hackberry'
};
it('should accept null', function() {
var mapped = objMap(null, function() {});
expect(mapped).toBe(null);
});
it('should return value to create copy', function() {
var mapped = objMap(obj, function(value) {
return value;
});
expect(mapped).not.toBe(obj);
expect(mapped).toEqual(obj);
});
it('should always retain keys', function() {
var mapped = objMap(obj, function() {
return null;
});
expect(mapped).toEqual({
A: null,
B: null,
C: null,
D: null,
E: null,
F: null,
G: null,
H: null
});
});
it('should map values', function() {
var mapped = objMap(obj, function (value) {
return value.toUpperCase();
});
expect(mapped).toEqual({
A: 'APPLE',
B: 'BANANA',
C: 'COCONUT',
D: 'DURIAN',
E: 'ELDERBERRY',
F: 'FIG',
G: 'GUAVA',
H: 'HACKBERRY'
});
});
it('should map keys', function() {
var mapped = objMap(obj, function (value, key) {
return key;
});
expect(mapped).toEqual({
A: 'A',
B: 'B',
C: 'C',
D: 'D',
E: 'E',
F: 'F',
G: 'G',
H: 'H'
});
});
it('should map iterations', function() {
var mapped = objMap(obj, function (value, key, iteration) {
return iteration;
});
expect(mapped).toEqual({
A: 0,
B: 1,
C: 2,
D: 3,
E: 4,
F: 5,
G: 6,
H: 7
});
});
});