@@ -410,7 +410,7 @@ var testBasicOperationsOwnDatabase = function(cb){
410410 testDelete ,
411411 testListCollections ,
412412 testDeleteAgain ,
413- testDeleteInvalidGuid ,
413+ testDeleteNonHexGuid ,
414414 testList1 ,
415415 testList2 ,
416416 testList3 ,
@@ -570,8 +570,8 @@ var testDeleteAgain = function (created, cb) {
570570 } ) ;
571571} ;
572572
573- var testDeleteInvalidGuid = function ( created , cb ) {
574- logger . info ( "test testDeleteInvalidGuid ()" ) ;
573+ var testDeleteNonHexGuid = function ( created , cb ) {
574+ logger . info ( "test testDeleteNonHexGuid ()" ) ;
575575 var deleteReq = {
576576 "__fhdb" : "123456789" ,
577577 "type" : "fh_test_collection" ,
@@ -583,7 +583,8 @@ var testDeleteInvalidGuid = function(created, cb) {
583583 }
584584
585585 ditch . doDelete ( deleteReq , function ( err , deleteRes ) {
586- assert . ok ( err , "Should have called back with error" ) ;
586+ assert . ok ( ! err ) ;
587+ assert . equal ( JSON . stringify ( deleteRes ) , "{}" ) ;
587588 cb ( ) ;
588589 } ) ;
589590} ;
@@ -1202,6 +1203,89 @@ var testImport = function(created, cb) {
12021203 } ) ;
12031204} ;
12041205
1206+ var testNonHexId = function ( ) {
1207+ logger . info ( "BEGIN testDbActions..." ) ;
1208+
1209+ var collectionName = "fh_test_collection_non_hex_id" ;
1210+ var createData = {
1211+ "__fhdb" : test_fhdb_name ,
1212+ "type" : collectionName ,
1213+ "fields" : {
1214+ "_id" : "foobar" ,
1215+ "firstName" : "Foo" ,
1216+ "lastName" : "Bar"
1217+ }
1218+ } ;
1219+
1220+ async . waterfall ( [
1221+ function ( cb ) {
1222+ logger . info ( "test testCreate()" ) ;
1223+
1224+ var testData = JSON . parse ( JSON . stringify ( createData ) ) ;
1225+ var expectedResult = JSON . parse ( JSON . stringify ( testData . fields ) ) ;
1226+
1227+ ditch . doCreate ( testData , function ( err , res ) {
1228+ assert . equal ( res . guid , createData . fields . _id ) ;
1229+ assert . equal ( res . fields . firstName , createData . fields . firstName ) ;
1230+ assert . equal ( res . fields . lastName , createData . fields . lastName ) ;
1231+ cb ( undefined , res ) ;
1232+ } ) ;
1233+ } ,
1234+ function ( created , cb ) {
1235+ logger . info ( "test testRead()" ) ;
1236+ var readReq = {
1237+ "__fhdb" : test_fhdb_name ,
1238+ "type" : collectionName ,
1239+ "guid" : created . guid
1240+ } ;
1241+
1242+ logger . debug ( "readReq" , readReq ) ;
1243+ ditch . doRead ( readReq , function ( err , res ) {
1244+ assert . equal ( res . guid , createData . fields . _id ) ;
1245+ assert . equal ( res . fields . firstName , createData . fields . firstName ) ;
1246+ assert . equal ( res . fields . lastName , createData . fields . lastName ) ;
1247+ cb ( undefined , created ) ;
1248+ } ) ;
1249+ } ,
1250+ function ( created , cb ) {
1251+ logger . info ( "test testUpdate()" ) ;
1252+ var updateReq = JSON . parse ( JSON . stringify ( created ) ) ;
1253+ updateReq . fields . firstName = 'Fizz' ;
1254+ updateReq [ "__fhdb" ] = test_fhdb_name ;
1255+
1256+ ditch . doUpdate ( updateReq , function ( err , res ) {
1257+ logger . debug ( "updateRes = " + JSON . stringify ( res ) ) ;
1258+
1259+ // firstName should have changed - other fields still the
1260+ // same
1261+ assert . equal ( res . guid , createData . fields . _id ) ;
1262+ assert . equal ( res . fields . firstName , "Fizz" ) ;
1263+ assert . equal ( res . fields . lastName , createData . fields . lastName ) ;
1264+ cb ( undefined , created ) ;
1265+ } ) ;
1266+ } ,
1267+ function ( created , cb ) {
1268+ logger . info ( "test testDelete()" ) ;
1269+ var deleteReq = {
1270+ "__fhdb" : test_fhdb_name ,
1271+ "type" : collectionName ,
1272+ "guid" : created . guid
1273+ } ;
1274+
1275+ ditch . doDelete ( deleteReq , function ( err , deleteRes ) {
1276+ assert . equal ( deleteRes . guid , createData . fields . _id ) ;
1277+ assert . equal ( deleteRes . fields . firstName , "Fizz" ) ;
1278+ assert . equal ( deleteRes . fields . lastName , createData . fields . lastName ) ;
1279+ cb ( undefined , created ) ;
1280+ } ) ;
1281+ }
1282+ ] , function ( err , result ) {
1283+ assert . ok ( ! err ) ;
1284+ ditch . tearDown ( ) ;
1285+ } ) ;
1286+
1287+ } ;
1288+
12051289
12061290exports . testDbActions = function ( beforeExit ) {
12071291 logger . info ( "BEGIN testDbActions..." ) ;
@@ -1227,7 +1311,7 @@ exports.testDbActions = function(beforeExit) {
12271311 testListCollections ,
12281312 testDelete ,
12291313 testDeleteAgain ,
1230- testDeleteInvalidGuid ,
1314+ testDeleteNonHexGuid ,
12311315 testList1 ,
12321316 testList2 ,
12331317 testList3 ,
@@ -1254,7 +1338,8 @@ exports.testDbActions = function(beforeExit) {
12541338 async . apply ( testDeleteAll , 0 ) ,
12551339 testCollectionOwnAppDatabase ,
12561340 testCollectionDitchAppDatabase ,
1257- testBasicOperationsOwnDatabase
1341+ testBasicOperationsOwnDatabase ,
1342+ testNonHexId
12581343 ] , function ( err , result ) {
12591344 assert . ok ( ! err ) ;
12601345 ditch . tearDown ( ) ;
0 commit comments