2013-10-17 13:56:35 -04:00
|
|
|
// Use a private sister database to avoid conflicts with other tests that use system.js
|
|
|
|
|
var testdb = db.getSisterDB("storefunc");
|
2014-02-19 12:45:53 -05:00
|
|
|
var res;
|
2009-09-29 16:54:31 -04:00
|
|
|
|
2013-10-17 13:56:35 -04:00
|
|
|
s = testdb.system.js;
|
2009-09-29 16:54:31 -04:00
|
|
|
s.remove({});
|
|
|
|
|
assert.eq( 0 , s.count() , "setup - A" );
|
|
|
|
|
|
2014-02-19 12:45:53 -05:00
|
|
|
res = s.save( { _id : "x" , value : "3" } );
|
2014-03-14 15:21:49 -04:00
|
|
|
assert( !res.hasWriteError() , "setup - B" );
|
2009-09-29 16:54:31 -04:00
|
|
|
assert.eq( 1 , s.count() , "setup - C" );
|
|
|
|
|
|
|
|
|
|
s.remove( { _id : "x" } );
|
|
|
|
|
assert.eq( 0 , s.count() , "setup - D" );
|
|
|
|
|
s.save( { _id : "x" , value : "4" } );
|
|
|
|
|
assert.eq( 1 , s.count() , "setup - E" );
|
|
|
|
|
|
2010-02-06 10:47:30 -05:00
|
|
|
assert.eq( 4 , s.findOne( { _id : "x" } ).value , "E2 " );
|
|
|
|
|
|
2009-09-29 16:54:31 -04:00
|
|
|
assert.eq( 4 , s.findOne().value , "setup - F" );
|
|
|
|
|
s.update( { _id : "x" } , { $set : { value : 5 } } );
|
|
|
|
|
assert.eq( 1 , s.count() , "setup - G" );
|
|
|
|
|
assert.eq( 5 , s.findOne().value , "setup - H" );
|
|
|
|
|
|
2013-10-17 13:56:35 -04:00
|
|
|
assert.eq( 5 , testdb.eval( "return x" ) , "exec - 1 " );
|
2009-09-29 16:54:31 -04:00
|
|
|
|
|
|
|
|
s.update( { _id : "x" } , { $set : { value : 6 } } );
|
|
|
|
|
assert.eq( 1 , s.count() , "setup2 - A" );
|
|
|
|
|
assert.eq( 6 , s.findOne().value , "setup - B" );
|
|
|
|
|
|
2013-10-17 13:56:35 -04:00
|
|
|
assert.eq( 6 , testdb.eval( "return x" ) , "exec - 2 " );
|
2009-09-29 16:54:31 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
s.insert( { _id : "bar" , value : function( z ){ return 17 + z; } } );
|
2013-10-17 13:56:35 -04:00
|
|
|
assert.eq( 22 , testdb.eval( "return bar(5);" ) , "exec - 3 " );
|
2010-02-06 10:47:30 -05:00
|
|
|
|
2010-02-07 00:49:47 -05:00
|
|
|
assert( s.getIndexKeys().length > 0 , "no indexes" );
|
|
|
|
|
assert( s.getIndexKeys()[0]._id , "no _id index" );
|
2010-02-06 10:47:30 -05:00
|
|
|
|
2013-10-17 13:56:35 -04:00
|
|
|
assert.eq( "undefined" , testdb.eval( function(){ return typeof(zzz); } ) , "C1" );
|
2010-02-07 01:10:12 -05:00
|
|
|
s.save( { _id : "zzz" , value : 5 } )
|
2013-10-17 13:56:35 -04:00
|
|
|
assert.eq( "number" , testdb.eval( function(){ return typeof(zzz); } ) , "C2" );
|
2010-02-07 01:10:12 -05:00
|
|
|
s.remove( { _id : "zzz" } );
|
2013-10-17 13:56:35 -04:00
|
|
|
assert.eq( "undefined" , testdb.eval( function(){ return typeof(zzz); } ) , "C3" );
|