@@ -23,11 +23,13 @@ var dummySchema = {
2323} ;
2424
2525
26- describe ( 'parseObjectToMongoObject ' , ( ) => {
26+ describe ( 'parseObjectToMongoObjectForCreate ' , ( ) => {
2727
2828 it ( 'a basic number' , ( done ) => {
2929 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+ } ) ;
3133 jequal ( input , output ) ;
3234 done ( ) ;
3335 } ) ;
@@ -37,7 +39,7 @@ describe('parseObjectToMongoObject', () => {
3739 createdAt : "2015-10-06T21:24:50.332Z" ,
3840 updatedAt : "2015-10-06T21:24:50.332Z"
3941 } ;
40- var output = transform . parseObjectToMongoObject ( dummySchema , null , input ) ;
42+ var output = transform . parseObjectToMongoObjectForCreate ( dummySchema , null , input ) ;
4143 expect ( output . _created_at instanceof Date ) . toBe ( true ) ;
4244 expect ( output . _updated_at instanceof Date ) . toBe ( true ) ;
4345 done ( ) ;
@@ -49,43 +51,53 @@ describe('parseObjectToMongoObject', () => {
4951 objectId : 'myId' ,
5052 className : 'Blah' ,
5153 } ;
52- var out = transform . parseObjectToMongoObject ( dummySchema , null , { pointers : [ pointer ] } ) ;
54+ var out = transform . parseObjectToMongoObjectForCreate ( dummySchema , null , { pointers : [ pointer ] } , {
55+ fields : { pointers : { type : 'Array' } }
56+ } ) ;
5357 jequal ( [ pointer ] , out . pointers ) ;
5458 done ( ) ;
5559 } ) ;
5660
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 ) => {
5864 var input = { deleteMe : { __op : 'Delete' } } ;
59- var output = transform . parseObjectToMongoObject ( dummySchema , null , input ) ;
65+ var output = transform . parseObjectToMongoObjectForCreate ( dummySchema , null , input ) ;
6066 jequal ( output , { } ) ;
6167 done ( ) ;
6268 } ) ;
6369
6470 it ( 'basic ACL' , ( done ) => {
6571 var input = { ACL : { '0123' : { 'read' : true , 'write' : true } } } ;
66- var output = transform . parseObjectToMongoObject ( dummySchema , null , input ) ;
72+ var output = transform . parseObjectToMongoObjectForCreate ( dummySchema , null , input ) ;
6773 // This just checks that it doesn't crash, but it should check format.
6874 done ( ) ;
6975 } ) ;
7076
7177 describe ( 'GeoPoints' , ( ) => {
7278 it ( 'plain' , ( done ) => {
7379 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+ } ) ;
7583 expect ( out . location ) . toEqual ( [ 180 , - 180 ] ) ;
7684 done ( ) ;
7785 } ) ;
7886
7987 it ( 'in array' , ( done ) => {
8088 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+ } ) ;
8292 expect ( out . locations ) . toEqual ( [ geoPoint , geoPoint ] ) ;
8393 done ( ) ;
8494 } ) ;
8595
8696 it ( 'in sub-object' , ( done ) => {
8797 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+ } ) ;
89101 expect ( out ) . toEqual ( { locations : { start : geoPoint } } ) ;
90102 done ( ) ;
91103 } ) ;
@@ -196,7 +208,9 @@ describe('transform schema key changes', () => {
196208 var input = {
197209 somePointer : { __type : 'Pointer' , className : 'Micro' , objectId : 'oft' }
198210 } ;
199- var output = transform . parseObjectToMongoObject ( dummySchema , null , input ) ;
211+ var output = transform . parseObjectToMongoObjectForCreate ( dummySchema , null , input , {
212+ fields : { somePointer : { type : 'Pointer' } }
213+ } ) ;
200214 expect ( typeof output . _p_somePointer ) . toEqual ( 'string' ) ;
201215 expect ( output . _p_somePointer ) . toEqual ( 'Micro$oft' ) ;
202216 done ( ) ;
@@ -206,7 +220,9 @@ describe('transform schema key changes', () => {
206220 var input = {
207221 userPointer : { __type : 'Pointer' , className : '_User' , objectId : 'qwerty' }
208222 } ;
209- var output = transform . parseObjectToMongoObject ( dummySchema , null , input ) ;
223+ var output = transform . parseObjectToMongoObjectForCreate ( dummySchema , null , input , {
224+ fields : { userPointer : { type : 'Pointer' } }
225+ } ) ;
210226 expect ( typeof output . _p_userPointer ) . toEqual ( 'string' ) ;
211227 expect ( output . _p_userPointer ) . toEqual ( '_User$qwerty' ) ;
212228 done ( ) ;
@@ -219,7 +235,7 @@ describe('transform schema key changes', () => {
219235 "Kevin" : { "write" : true }
220236 }
221237 } ;
222- var output = transform . parseObjectToMongoObject ( dummySchema , null , input ) ;
238+ var output = transform . parseObjectToMongoObjectForCreate ( dummySchema , null , input ) ;
223239 expect ( typeof output . _rperm ) . toEqual ( 'object' ) ;
224240 expect ( typeof output . _wperm ) . toEqual ( 'object' ) ;
225241 expect ( output . ACL ) . toBeUndefined ( ) ;
0 commit comments