From 81117e5c801d53c23efaec5fdb2de610cce99d57 Mon Sep 17 00:00:00 2001 From: Steve Perkins Date: Wed, 21 Aug 2019 17:17:33 -0400 Subject: [PATCH] Add param test, fix formatting (spaces to tabs) --- test/04-select.js | 15 ++++++ test/05-insert.js | 130 +++++++++++++++++++++++----------------------- 2 files changed, 80 insertions(+), 65 deletions(-) diff --git a/test/04-select.js b/test/04-select.js index b20bdda..f17ac30 100644 --- a/test/04-select.js +++ b/test/04-select.js @@ -194,6 +194,21 @@ describe ("select data from database", function () { }); }); + it ("select with parameters", function (done) { + + var ch = new ClickHouse ({host: host, port: port}); + + ch.query ("SELECT number FROM system.numbers LIMIT {num:Int}", {queryOptions: {param_num: 8}, format: "CSV"}, function (err, result) { + + assert (!err, err); + + assert (result.match (/1\n2\n3\n4\n5\n6\n7/)); + + done (); + + }); + }); + it("can cancel an ongoing select by calling destroy", function (done) { var RecordStream = require("../src/streams").RecordStream; if (typeof RecordStream.prototype.destroy !== "function") { diff --git a/test/05-insert.js b/test/05-insert.js index 72e7fa0..77c187f 100644 --- a/test/05-insert.js +++ b/test/05-insert.js @@ -296,89 +296,89 @@ describe ("insert data", function () { }); - it ("creates a table 4", function (done) { - var ch = new ClickHouse ({host: host, port: port, queryOptions: {database: dbName}}); - ch.query ("CREATE TABLE t4 (arrayString Array(String), arrayInt Array(UInt32)) ENGINE = Memory", function (err, result) { - assert (!err); + it("creates a table 4", function (done) { + var ch = new ClickHouse({ host: host, port: port, queryOptions: { database: dbName } }); + ch.query("CREATE TABLE t4 (arrayString Array(String), arrayInt Array(UInt32)) ENGINE = Memory", function (err, result) { + assert(!err); - done (); - }); - }); + done(); + }); + }); - it ("inserts array with format JSON using stream", function (done) { - var ch = new ClickHouse ({host: host, port: port}); + it("inserts array with format JSON using stream", function (done) { + var ch = new ClickHouse({ host: host, port: port }); - var stream = ch.query ("INSERT INTO t4", {queryOptions: {database: dbName}, format: "JSONEachRow"}, function (err, result) { - assert (!err, err); + var stream = ch.query("INSERT INTO t4", { queryOptions: { database: dbName }, format: "JSONEachRow" }, function (err, result) { + assert(!err, err); - ch.query ("SELECT * FROM t4", {syncParser: true, queryOptions: {database: dbName}, dataObjects: "JSON"}, function (err, result) { - assert.deepEqual (result.data[0].arrayString, ['first', 'second']); - assert.deepEqual (result.data[0].arrayInt, [1, 0, 100]); + ch.query("SELECT * FROM t4", { syncParser: true, queryOptions: { database: dbName }, dataObjects: "JSON" }, function (err, result) { + assert.deepEqual(result.data[0].arrayString, ['first', 'second']); + assert.deepEqual(result.data[0].arrayInt, [1, 0, 100]); - done (); - }); - }); + done(); + }); + }); - stream.write ({ - arrayString: ['first', 'second'], - arrayInt: [1, 0, 100] - }); + stream.write({ + arrayString: ['first', 'second'], + arrayInt: [1, 0, 100] + }); - stream.end (); - }); + stream.end(); + }); - it ("creates a table 5", function () { - var ch = new ClickHouse ({host: host, port: port, queryOptions: {database: dbName}}); - return ch.querying ("CREATE TABLE t5 (a UInt8, b Float32, x Nullable(String), z DateTime) ENGINE = Memory"); - }); + it ("creates a table 5", function () { + var ch = new ClickHouse ({host: host, port: port, queryOptions: {database: dbName}}); + return ch.querying ("CREATE TABLE t5 (a UInt8, b Float32, x Nullable(String), z DateTime) ENGINE = Memory"); + }); - it ("inserts csv with FORMAT clause", function (done) { - var ch = new ClickHouse ({host: host, port: port}); - var stream = ch.query ("INSERT INTO t5 FORMAT CSV", {queryOptions: {database: dbName}}, function (err, result) { - assert (!err, err); + it ("inserts csv with FORMAT clause", function (done) { + var ch = new ClickHouse ({host: host, port: port}); + var stream = ch.query ("INSERT INTO t5 FORMAT CSV", {queryOptions: {database: dbName}}, function (err, result) { + assert (!err, err); - ch.query ("SELECT * FROM t5", {syncParser: true, queryOptions: {database: dbName}}, function (err, result) { + ch.query ("SELECT * FROM t5", {syncParser: true, queryOptions: {database: dbName}}, function (err, result) { - assert.equal (result.data[0][0], 0); - assert.equal (result.data[0][1], 0); - assert.equal (result.data[0][2], null); - assert.equal (result.data[0][3], '1970-01-02 00:00:00'); - assert.equal (result.data[1][0], 1); - assert.equal (result.data[1][1], 1.5); - assert.equal (result.data[1][2], '1'); - assert.equal (result.data[1][3], '2050-01-01 00:00:00'); + assert.equal (result.data[0][0], 0); + assert.equal (result.data[0][1], 0); + assert.equal (result.data[0][2], null); + assert.equal (result.data[0][3], '1970-01-02 00:00:00'); + assert.equal (result.data[1][0], 1); + assert.equal (result.data[1][1], 1.5); + assert.equal (result.data[1][2], '1'); + assert.equal (result.data[1][3], '2050-01-01 00:00:00'); - done (); + done (); - }); }); - stream.write('0,0,\\N,"1970-01-02 00:00:00"\n1,1.5,"1","2050-01-01 00:00:00"') - stream.end (); }); + stream.write('0,0,\\N,"1970-01-02 00:00:00"\n1,1.5,"1","2050-01-01 00:00:00"') + stream.end (); + }); - it ("select data with FORMAT clause", function () { - var ch = new ClickHouse ({host: host, port: port}); - return ch.querying("SELECT * FROM t5 FORMAT Values", {queryOptions: {database: dbName}}) - .then((data) => { - assert.equal (data, `(0,0,NULL,'1970-01-02 00:00:00'),(1,1.5,'1','2050-01-01 00:00:00')`) - }) - }); + it ("select data with FORMAT clause", function () { + var ch = new ClickHouse ({host: host, port: port}); + return ch.querying("SELECT * FROM t5 FORMAT Values", {queryOptions: {database: dbName}}) + .then((data) => { + assert.equal (data, `(0,0,NULL,'1970-01-02 00:00:00'),(1,1.5,'1','2050-01-01 00:00:00')`) + }) + }); - it ("select data with GET method and FORMAT clause", function () { - var ch = new ClickHouse ({host: host, port: port, useQueryString: true}); - return ch.querying("SELECT * FROM t5 FORMAT Values", {queryOptions: {database: dbName}}) - .then((data) => { - assert.equal (data, `(0,0,NULL,'1970-01-02 00:00:00'),(1,1.5,'1','2050-01-01 00:00:00')`) - }) - }); + it ("select data with GET method and FORMAT clause", function () { + var ch = new ClickHouse ({host: host, port: port, useQueryString: true}); + return ch.querying("SELECT * FROM t5 FORMAT Values", {queryOptions: {database: dbName}}) + .then((data) => { + assert.equal (data, `(0,0,NULL,'1970-01-02 00:00:00'),(1,1.5,'1','2050-01-01 00:00:00')`) + }) + }); - it ("select data with GET method and format option", function () { - var ch = new ClickHouse ({host: host, port: port, useQueryString: true}); - return ch.querying("SELECT * FROM t5", {queryOptions: {database: dbName}, format: 'Values'}) - .then((data) => { - assert.equal (data, `(0,0,NULL,'1970-01-02 00:00:00'),(1,1.5,'1','2050-01-01 00:00:00')`) - }) - }); + it ("select data with GET method and format option", function () { + var ch = new ClickHouse ({host: host, port: port, useQueryString: true}); + return ch.querying("SELECT * FROM t5", {queryOptions: {database: dbName}, format: 'Values'}) + .then((data) => { + assert.equal (data, `(0,0,NULL,'1970-01-02 00:00:00'),(1,1.5,'1','2050-01-01 00:00:00')`) + }) + }); after (function (done) {