4
4
jest . autoMockOff ( ) ;
5
5
6
6
import Immutable = require( 'immutable' ) ;
7
+ import Map = Immutable . Map ;
7
8
8
9
jasmine . getEnv ( ) . addEqualityTester ( ( a , b ) =>
9
10
a instanceof Immutable . Sequence && b instanceof Immutable . Sequence ?
@@ -19,7 +20,7 @@ describe('Cursor', () => {
19
20
var data = Immutable . fromJS ( json ) ;
20
21
var cursor = data . cursor ( ) ;
21
22
22
- expect ( cursor . deref ( ) ) . toBe ( data ) ;
23
+ expect ( Immutable . unCursor ( cursor ) ) . toBe ( data ) ;
23
24
24
25
var deepCursor = cursor . cursor ( [ 'a' , 'b' ] ) ;
25
26
expect ( deepCursor . toJS ( ) ) . toEqual ( json . a . b ) ;
@@ -30,8 +31,8 @@ describe('Cursor', () => {
30
31
expect ( leafCursor ) . toBe ( 1 ) ;
31
32
32
33
var missCursor = deepCursor . cursor ( 'd' ) ;
33
- expect ( Immutable . is ( missCursor , undefined ) ) . toBe ( true ) ;
34
- expect ( missCursor . deref ( ) ) . toBe ( undefined ) ;
34
+ expect ( Immutable . is ( missCursor , Map . empty ( ) ) ) . toBe ( true ) ;
35
+ expect ( Immutable . unCursor ( missCursor ) ) . toEqual ( Map . empty ( ) ) ;
35
36
} ) ;
36
37
37
38
it ( 'appears to be the type it points to' , ( ) => {
@@ -48,11 +49,17 @@ describe('Cursor', () => {
48
49
) . toBe ( true ) ;
49
50
} ) ;
50
51
52
+ it ( 'can detect cursors' , ( ) => {
53
+ var data = Immutable . fromJS ( json ) ;
54
+ expect ( Immutable . isCursor ( data . get ( 'a' ) ) ) . toBe ( false ) ;
55
+ expect ( Immutable . isCursor ( data . cursor ( 'a' ) ) ) . toBe ( true ) ;
56
+ } ) ;
57
+
51
58
it ( 'gets return new cursors' , ( ) => {
52
59
var data = Immutable . fromJS ( json ) ;
53
60
var cursor = data . cursor ( ) ;
54
61
var deepCursor = cursor . getIn ( [ 'a' , 'b' ] ) ;
55
- expect ( deepCursor . deref ( ) ) . toBe ( data . getIn ( [ 'a' , 'b' ] ) ) ;
62
+ expect ( Immutable . unCursor ( deepCursor ) ) . toBe ( data . getIn ( [ 'a' , 'b' ] ) ) ;
56
63
} ) ;
57
64
58
65
it ( 'can be treated as a value' , ( ) => {
@@ -135,9 +142,9 @@ describe('Cursor', () => {
135
142
it ( 'creates maps as necessary' , ( ) => {
136
143
var data = Immutable . Map ( ) ;
137
144
var cursor = data . cursor ( [ 'a' , 'b' , 'c' ] ) ;
138
- expect ( cursor . deref ( ) ) . toBe ( undefined ) ;
145
+ expect ( cursor ) . toEqual (<
8000
/span>Map . empty ( ) ) ;
139
146
cursor = cursor . set ( 'd' , 3 ) ;
140
- expect ( cursor . deref ( ) ) . toEqual ( Immutable . Map ( { d : 3 } ) ) ;
147
+ expect ( cursor ) . toEqual ( Immutable . Map ( { d : 3 } ) ) ;
141
148
} ) ;
142
149
143
150
it ( 'has the sequence API' , ( ) => {
@@ -151,7 +158,7 @@ describe('Cursor', () => {
151
158
var onChange = jest . genMockFunction ( ) ;
152
159
var cursor = data . cursor ( onChange ) ;
153
160
var found = cursor . find ( map => map . get ( 'v' ) === 2 ) ;
154
- expect ( typeof found . deref ) . toBe ( 'function' ) ; // is a cursor!
161
+ expect ( Immutable . isCursor ( found ) ) . toBe ( true ) ;
155
162
found = found . set ( 'v' , 20 ) ;
156
163
expect ( onChange ) . lastCalledWith (
157
164
Immutable . fromJS ( { a : { v : 1 } , b : { v : 20 } , c : { v : 3 } } ) ,
@@ -167,8 +174,8 @@ describe('Cursor', () => {
167
174
var c1 = data . cursor ( onChange ) ;
168
175
var c2 = c1 . withMutations ( m => m . set ( 'b' , 2 ) . set ( 'c' , 3 ) . set ( 'd' , 4 ) ) ;
169
176
170
- expect ( c1 . deref ( ) . toObject ( ) ) . toEqual ( { 'a' : 1 } ) ;
171
- expect ( c2 . deref ( ) . toObject ( ) ) . toEqual ( { 'a' : 1 , 'b' : 2 , 'c' : 3 , 'd' : 4 } ) ;
177
+ expect ( c1 . toObject ( ) ) . toEqual ( { 'a' : 1 } ) ;
178
+ expect ( c2 . toObject ( ) ) . toEqual ( { 'a' : 1 , 'b' : 2 , 'c' : 3 , 'd' : 4 } ) ;
172
179
expect ( onChange . mock . calls . length ) . toBe ( 1 ) ;
173
180
} ) ;
174
181
@@ -179,8 +186,8 @@ describe('Cursor', () => {
179
186
var c1 = data . cursor ( [ 'a' , 'b' , 'c' ] , onChange ) ;
180
187
var c2 = c1 . withMutations ( m => m . set ( 'x' , 1 ) . set ( 'y' , 2 ) . set ( 'z' , 3 ) ) ;
181
188
182
- expect ( c1 . deref ( ) ) . toEqual ( undefined ) ;
183
- expect ( c2 . deref ( ) ) . toEqual ( Immutable . fromJS (
189
+ expect ( c1 ) . toEqual ( Map . empty ( ) ) ;
190
+ expect ( c2 ) . toEqual ( Immutable . fromJS (
184
191
{ x : 1 , y : 2 , z : 3 }
185
192
) ) ;
186
193
expect ( onChange . mock . calls . length ) . toBe ( 1 ) ;
0 commit comments