@@ -23,11 +23,13 @@ var dummySchema = {
23
23
} ;
24
24
25
25
26
- describe ( 'parseObjectToMongoObject ' , ( ) => {
26
+ describe ( 'parseObjectToMongoObjectForCreate ' , ( ) => {
27
27
28
28
it ( 'a basic number' , ( done ) => {
29
29
var input = { five : 5 } ;
30
- var output = transform . parseObjectToMongoObject ( dummySchema , null , input ) ;
30
+ var output = transform . parseObjectToMongoObjectForCreate ( dummySchema , null , input , {
31
+ fields : { five : { type : 'Number' } }
32
+ } ) ;
31
33
jequal ( input , output ) ;
32
34
done ( ) ;
33
35
} ) ;
@@ -37,7 +39,7 @@ describe('parseObjectToMongoObject', () => {
37
39
createdAt : "2015-10-06T21:24:50.332Z" ,
38
40
updatedAt : "2015-10-06T21:24:50.332Z"
39
41
} ;
40
- var output = transform . parseObjectToMongoObject ( dummySchema , null , input ) ;
42
+ var output = transform . parseObjectToMongoObjectForCreate ( dummySchema , null , input ) ;
41
43
expect ( output . _created_at instanceof Date ) . toBe ( true ) ;
42
44
expect ( output . _updated_at instanceof Date ) . toBe ( true ) ;
43
45
done ( ) ;
@@ -49,43 +51,53 @@ describe('parseObjectToMongoObject', () => {
49
51
objectId : 'myId' ,
50
52
className : 'Blah' ,
51
53
} ;
52
- var out = transform . parseObjectToMongoObject ( dummySchema , null , { pointers : [ pointer ] } ) ;
54
+ var out = transform . parseObjectToMongoObjectForCreate ( dummySchema , null , { pointers : [ pointer ] } , {
55
+ fields : { pointers : { type : 'Array' } }
56
+ } ) ;
53
57
jequal ( [ pointer ] , out . pointers ) ;
54
58
done ( ) ;
55
59
} ) ;
56
60
57
- it ( 'a delete op' , ( done ) => {
61
+ //TODO: object creation requests shouldn't be seeing __op delete, it makes no sense to
62
+ //have __op delete in a new object. Figure out what this should actually be testing.
63
+ notWorking ( 'a delete op' , ( done ) => {
58
64
var input = { deleteMe : { __op : 'Delete' } } ;
59
- var output = transform . parseObjectToMongoObject ( dummySchema , null , input ) ;
65
+ var output = transform . parseObjectToMongoObjectForCreate ( dummySchema , null , input ) ;
60
66
jequal ( output , { } ) ;
61
67
done ( ) ;
62
68
} ) ;
63
69
64
70
it ( 'basic ACL' , ( done ) => {
65
71
var input = { ACL : { '0123' : { 'read' : true , 'write' : true } } } ;
66
- var output = transform . parseObjectToMongoObject ( dummySchema , null , input ) ;
72
+ var output = transform . parseObjectToMongoObjectForCreate ( dummySchema , null , input ) ;
67
73
// This just checks that it doesn't crash, but it should check format.
68
74
done ( ) ;
69
75
} ) ;
70
76
71
77
describe ( 'GeoPoints' , ( ) => {
72
78
it ( 'plain' , ( done ) => {
73
79
var geoPoint = { __type : 'GeoPoint' , longitude : 180 , latitude : - 180 } ;
74
- var out = transform . parseObjectToMongoObject ( dummySchema , null , { location : geoPoint } ) ;
80
+ var out = transform . parseObjectToMongoObjectForCreate ( dummySchema , null , { location : geoPoint } , {
81
+ fields : { location : { type : 'GeoPoint' } }
82
+ } ) ;
75
83
expect ( out . location ) . toEqual ( [ 180 , - 180 ] ) ;
76
84
done ( ) ;
77
85
} ) ;
78
86
79
87
it ( 'in array' , ( done ) => {
80
88
var geoPoint = { __type : 'GeoPoint' , longitude : 180 , latitude : - 180 } ;
81
- var out = transform . parseObjectToMongoObject ( dummySchema , null , { locations : [ geoPoint , geoPoint ] } ) ;
89
+ var out = transform . parseObjectToMongoObjectForCreate ( dummySchema , null , { locations : [ geoPoint , geoPoint ] } , {
90
+ fields : { locations : { type : 'Array' } }
91
+ } ) ;
82
92
expect ( out . locations ) . toEqual ( [ geoPoint , geoPoint ] ) ;
83
93
done ( ) ;
84
94
} ) ;
85
95
86
96
it ( 'in sub-object' , ( done ) => {
87
97
var geoPoint = { __type : 'GeoPoint' , longitude : 180 , latitude : - 180 } ;
88
- var out = transform . parseObjectToMongoObject ( dummySchema , null , { locations : { start : geoPoint } } ) ;
98
+ var out = transform . parseObjectToMongoObjectForCreate ( dummySchema , null , { locations : { start : geoPoint } } , {
99
+ fields : { locations : { type : 'Object' } }
100
+ } ) ;
89
101
expect ( out ) . toEqual ( { locations : { start : geoPoint } } ) ;
90
102
done ( ) ;
91
103
} ) ;
@@ -196,7 +208,9 @@ describe('transform schema key changes', () => {
196
208
var input = {
197
209
somePointer : { __type : 'Pointer' , className : 'Micro' , objectId : 'oft' }
198
210
} ;
199
- var output = transform . parseObjectToMongoObject ( dummySchema , null , input ) ;
211
+ var output = transform . parseObjectToMongoObjectForCreate ( dummySchema , null , input , {
212
+ fields : { somePointer : { type : 'Pointer' } }
213
+ } ) ;
200
214
expect ( typeof output . _p_somePointer ) . toEqual ( 'string' ) ;
201
215
expect ( output . _p_somePointer ) . toEqual ( 'Micro$oft' ) ;
202
216
done ( ) ;
@@ -206,7 +220,9 @@ describe('transform schema key changes', () => {
206
220
var input = {
207
221
userPointer : { __type : 'Pointer' , className : '_User' , objectId : 'qwerty' }
208
222
} ;
209
- var output = transform . parseObjectToMongoObject ( dummySchema , null , input ) ;
223
+ var output = transform . parseObjectToMongoObjectForCreate ( dummySchema , null , input , {
224
+ fields : { userPointer : { type : 'Pointer' } }
225
+ } ) ;
210
226
expect ( typeof output . _p_userPointer ) . toEqual ( 'string' ) ;
211
227
expect ( output . _p_userPointer ) . toEqual ( '_User$qwerty' ) ;
212
228
done ( ) ;
@@ -219,7 +235,7 @@ describe('transform schema key changes', () => {
219
235
"Kevin" : { "write" : true }
220
236
}
221
237
} ;
222
- var output = transform . parseObjectToMongoObject ( dummySchema , null , input ) ;
238
+ var output = transform . parseObjectToMongoObjectForCreate ( dummySchema , null , input ) ;
223
239
expect ( typeof output . _rperm ) . toEqual ( 'object' ) ;
224
240
expect ( typeof output . _wperm ) . toEqual ( 'object' ) ;
225
241
expect ( output . ACL ) . toBeUndefined ( ) ;
0 commit comments