UNPKG

epiquery2

Version:

run templated queries from the http's using learnings from 1

93 lines (89 loc) 3.35 kB
<!DOCTYPE HTML> <meta charset="UTF-8"> <html lang="en"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <link rel="stylesheet" href="css/qunit.css"> <title></title> <script src="js/epiclient_v2.js"></script> <script src="js/lib.js"></script> <script src="js/qunit.js"></script> <script type="text/javascript"> var EpiClient = require('epi-client').EpiClient var client = new EpiClient("ws://localhost:8080/sockjs/websocket"); var queryId = Date.now() function collectResponses(connectionName, template, data, callback){ var responses = [] var myQueryId = ++queryId; client.query(connectionName, template, data, myQueryId); function collect(data){ if (data.queryId === myQueryId){ responses.push(data); } return responses; } client.on('row', collect); client.on('close', collect); client.on('beginquery', collect); client.on('data', collect); client.on('beginrowset', collect); client.on('endrowset', collect); client.on('endquery', function(data){ if ( data.queryId === myQueryId ){ callback(collect(data)); } }); } function stringHasValue(s){ return s !== null && s !== undefined && typeof(s) === "string" && s !== ""; } QUnit.asyncTest("row event contains data", function(assert){ expect(2); var client = new EpiClient("ws://localhost:8080/sockjs/websocket"); client.query('mssql', 'test/servername', null, 'mqid'); client.on('row', function(row) { console.log(row.columns[0]); // we should have something called name and value, name should be // 'servername' and value should be something valid for the current // configuration so we'll assume anything that isn't nullish or // an empty string as valid assert.strictEqual(row.columns[0].name, 'servername', 'column name should be \'servernam\''); assert.ok(stringHasValue(row.columns[0].value), 'invalid name'); }); client.on('error', function(e){ console.log(e); }); client.on('endquery', function(){ QUnit.start(); }); }); /* QUnit.asyncTest("some tests 'n' shit", function (assert){ expect(1); var mysqlData, mssqlData; var Q = require('q'); var mysqlDone = Q.defer(); var mssqlDone = Q.defer(); // query: (connectionName, template, data, queryId=null) => collectResponses('mssql', 'test/servername', null, function(d) { mssqlData = d; mssqlDone.resolve(); }); collectResponses('mysql_v2', 'test/mysql_servername', null, function(d) { mysqlData = d; mysqlDone.resolve()}); Q.all([mysqlDone.promise, mssqlDone.promise]).then(function(){ assert.strictEqual(mysqlData.length, mssqlData.length, "same number of events"); console.log("mysql"); console.log(mysqlData); for (var i=0;i<mysqlData.length;i++){ console.log(mysqlData[i].message); } console.log("mssql"); console.log(mssqlData); for (var i=0;i<mssqlData.length;i++){ console.log(mssqlData[i].message); } QUnit.start(); }); }); */ </script> </head> <body> <div id="qunit"></div> <div id="qunit-fixture"></div> </body> </html>