UNPKG

any-db-mssql

Version:

The MSSQL adapter for any-db

41 lines (35 loc) 1.47 kB
var assert = require('assert'); /** * makeSlowQuery is just a helper function used for testing asynchronous requests. * * @param {any-db~Connection} connection * @param {number} delaySeconds - minimum number of seconds to delay before finishing query * @param {Function} done - call back after finishing or error */ module.exports = function makeSlowQuery(connection, delaySeconds, done) { connection.once('error', function(err){ assert.ifError(err); }); // Based on http://stackoverflow.com/a/11277048 // This may be disallowed by data base, so we have to emulate slow down anyway :(. /*var q = [ 'DECLARE @EndTime DATETIME;', 'SET @EndTime = DATEADD(s, '+delaySeconds+', GETDATE());', // Set your delay here 'DECLARE @dummy INT;', 'SET @dummy = 0;', 'WHILE @EndTime > GETDATE() SET @dummy = @dummy + 1;', 'SELECT @dummy AS test;' // Add your desired query here ];*/ var q = ['SELECT 1 AS test']; //var start = Date.now(); connection.query(q.join(''), false, function(err, result){ assert.ifError(err); assert.strictEqual(result.rows.length, 1, 'rows.length should be 1'); //var end = Date.now(); //assert.ok(end - start >= delaySeconds * 1000, 'There should be at least '+delaySeconds+' seconds delay'); // Emulate slow query by waiting for at least delaySeconds before calling back. setTimeout(done, delaySeconds * 1000); }).on('error', function(err){ console.log(err); }); };