summaryrefslogtreecommitdiff
path: root/jstests/core/eval9.js
blob: 3338a34fc6027a242681c021c397dde2b6c68d53 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// Cannot implicitly shard accessed collections because unsupported use of sharded collection
// from db.eval.
// @tags: [assumes_unsharded_collection]

assert.writeOK(db.evalprep.insert({}), "db must exist for eval to succeed");
db.evalprep.drop();

a = [1, "asd", null, [2, 3], new Date(), {x: 1}];

for (var i = 0; i < a.length; i++) {
    var ret = db.eval("function( a , i ){ return a[i]; }", a, i);
    assert.eq(typeof(a[i]), typeof(ret), "type test");
    assert.eq(a[i], ret, "val test: " + typeof(a[i]));
}

db.eval9.drop();
db.eval9.save({a: 17});

assert.eq(1, db.eval("return db.eval9.find().toArray()").length, "A");
assert.eq(17, db.eval("return db.eval9.find().toArray()")[0].a, "B");

// just to make sure these things don't crash (but may throw an exception)
try {
    db.eval("return db.eval9.find()");
    db.eval("return db.eval9");
    db.eval("return db");
    db.eval("return print");
} catch (ex) {
}