-
Notifications
You must be signed in to change notification settings - Fork 53
Expand file tree
/
Copy pathnodejs-javascript-eval.js
More file actions
95 lines (82 loc) · 3.29 KB
/
nodejs-javascript-eval.js
File metadata and controls
95 lines (82 loc) · 3.29 KB
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
/*
* Copyright (c) 2015-2025 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
*/
var should = require('should');
var testconfig = require('../etc/test-config-qa.js');
var marklogic = require('../');
var q = marklogic.queryBuilder;
var db = marklogic.createDatabaseClient(testconfig.restReaderConnection);
var dbWriter = marklogic.createDatabaseClient(testconfig.restWriterConnection);
var dbEval = marklogic.createDatabaseClient(testconfig.restEvaluatorConnection);
var dbAdmin = marklogic.createDatabaseClient(testconfig.restAdminConnection);
describe('Server eval test', function () {
it('should do javascript eval on json', function (done) {
dbEval.eval('xdmp.toJSON({k:"v"});').result(function (values) {
//console.log(values);
values[0].value.k.should.equal('v');
done();
}, function (error) {
console.log(JSON.stringify(error, null, 2));
done();
});
});
it('should do javascript eval on text', function (done) {
dbEval.eval('fn.lowerCase("MarkLogic");').result(function (values) {
//console.log(values);
values[0].value.should.equal('marklogic');
done();
}, done);
});
it('should do javascript eval on string manipulation', function (done) {
dbEval.eval('fn.contains("this is a string", "s a s");').result(function (values) {
//console.log(values);
values[0].value.should.equal(true);
done();
}, done);
});
it('should do javascript eval to call on array', function (done) {
var src = 'var mycars = ["volvo", "nissan", "honda", "volvo", "HONDA"];' +
'fn.distinctValues(xdmp.arrayValues(mycars));';
dbEval.eval(src).
result(function (values) {
//console.log(values);
values.length.should.equal(4);
done();
}, done);
});
it('should do more javascript eval to xml', function (done) {
dbEval.eval('xdmp.fromJsonString(\'["a", null, false]\');').result(function (values) {
//console.log(values);
values[0].value[0].should.equal('a');
done();
}, done);
});
it('should do eval to Documents db -- issue #158', function (done) {
var dbDoc = marklogic.createDatabaseClient({
host: 'localhost',
port: '8000',
database: 'Documents',
user: 'admin',
password: 'admin'
});
dbDoc.eval('xdmp.databaseName(xdmp.database());').result(function (response) {
//console.log(JSON.stringify(response, null, 2));
response[0].value.should.equal('Documents');
done();
}, done);
});
it('should do eval to Modules db -- issue #158', function (done) {
var dbMod = marklogic.createDatabaseClient({
host: 'localhost',
port: '8000',
database: 'Modules',
user: 'admin',
password: 'admin'
});
dbMod.eval('xdmp.databaseName(xdmp.database());').result(function (response) {
//console.log(JSON.stringify(response, null, 2));
response[0].value.should.equal('Modules');
done();
}, done);
});
});