From 5238d3356c422147ae5e822769397342a926d644 Mon Sep 17 00:00:00 2001 From: Ben Thompson Date: Fri, 6 Jun 2014 10:38:25 -0400 Subject: [PATCH] Add test for when x.y.naturalKeyOfY is needed. --- test/database/joins.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/test/database/joins.js b/test/database/joins.js index b2099f707..29b865d62 100644 --- a/test/database/joins.js +++ b/test/database/joins.js @@ -137,6 +137,19 @@ var _ = require("underscore"), }); }); + it('should execute a query with an x.y join path when x.y.naturalKeyOfY is needed', function (done) { + var sql = 'select xt.js_init(true);xt.post($${"nameSpace":"XM","type":"ItemSiteListItem","dispatch":{"functionName":"fetch","parameters":{"orderBy":[{"attribute":"item.number"}],"rowOffset":0,"rowLimit":50,"parameters":[{"attribute":"isActive","operator":"=","value":true},{"attribute":"item.classCode","operator":"","isCharacteristic":false,"value":"TOYS-CARS"}]}},"encoding":"rjson","username":"admin","encryptionKey":"foo"}$$);'; + + datasource.query(sql, creds, function (err, res) { + var results; + assert.isNull(err); + assert.equal(1, res.rowCount, JSON.stringify(res.rows)); + results = JSON.parse(res.rows[1].get); + assert.isNumber(results.length); + done(); + }); + }); + it('should execute a query with ambiguous column filters', function (done) { var sql = 'select xt.js_init(true);select xt.get($${"nameSpace":"XM","type":"ToDoListItem","query":{"orderBy":[{"attribute":"priorityOrder"},{"attribute":"dueDate"},{"attribute":"name"}],"parameters":[{"attribute":"isActive","operator":"=","value":true},{"attribute":["owner.username","assignedTo.username"],"operator":"","isCharacteristic":false,"value":"admin"},{"attribute":"uuid","operator":"=","value":"23eef809-2f7c-4289-9eab-a72d621a6adb"}],"rowOffset":0,"rowLimit":50},"username":"admin","encryptionKey":"this is any content"}$$);'; -- 2.39.2