Skip to content

Commit 28d7264

Browse files
committed
timequery test
1 parent 5458f23 commit 28d7264

File tree

4 files changed

+53
-3
lines changed

4 files changed

+53
-3
lines changed

examples/express/server.js

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
var miniprofiler = require('../../lib/miniprofiler.js');
22
var pg = require('pg');
33
var redis = require('redis');
4-
var redisClient = redis.createClient();
54

65
var express = require('express');
76
var connString = 'postgres://postgres:postgres@localhost/miniprofiler';
@@ -18,7 +17,20 @@ app.get('/', function(req, res) {
1817
res.render('home');
1918
});
2019

20+
app.get('/js-sleep', function(req, res) {
21+
var waitBeforeRender = function(ms) {
22+
setTimeout(function() {
23+
res.render('home');
24+
}, ms());
25+
}
26+
27+
req.miniprofiler.timeQuery('custom', 'Sleeping...', waitBeforeRender, function() {
28+
return 300
29+
});
30+
});
31+
2132
app.get('/redis-set-get', function(req, res) {
33+
var redisClient = redis.createClient();
2234
redisClient.set('customer', '[email protected]', function() {
2335
redisClient.get('key', function(err, reply) {
2436
res.render('home');
@@ -36,6 +48,7 @@ app.get('/pg-sleep', function(req, res) {
3648
});
3749

3850
app.get('/all', function(req, res) {
51+
var redisClient = redis.createClient();
3952
req.miniprofiler.step('Waiting 1 second', function() {
4053

4154
pg.connect(connString, function(err, pgClient, done) {

lib/miniprofiler.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -367,18 +367,21 @@ function timeQuery(extension, type, query, executeFunction) {
367367
};
368368
extension.stepGraph.customTimings[type].push(customTiming);
369369

370+
//Do we need this?
371+
/*
370372
for(var i = 0; i < params.length; i++){
371373
var param = params[i];
372374
if(_.isFunction(params[i])){
373375
params[i] = function() {
374-
customTiming.stopTime = process.hrtime();
376+
//customTiming.stopTime = process.hrtime();
375377
376378
var ret = param.apply(this, arguments);
377379
378380
return ret;
379381
};
380382
}
381383
}
384+
*/
382385

383386
var ret = executeFunction.apply(this, params);
384387

tests/basic-test.js

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,27 @@ describe('MiniProfiler Tests', function() {
1111
done();
1212
});
1313
});
14-
14+
15+
it('Custom timed query should be profiled', function(done) {
16+
server.get('/js-sleep', (err, response) => {
17+
var ids = JSON.parse(response.headers['x-miniprofiler-ids']);
18+
expect(ids).to.have.lengthOf(1);
19+
20+
server.post('/mini-profiler-resources/results', { id: ids[0], popup: 1 }, (err, response, body) => {
21+
var result = JSON.parse(body);
22+
expect(result.Id).to.equal(ids[0]);
23+
expect(result.Name).to.equal('/js-sleep');
24+
expect(result.DurationMilliseconds).to.be.above(200);
25+
expect(result.Root.Children).to.be.empty;
26+
expect(result.Root.CustomTimings).to.have.property('custom');
27+
expect(result.Root.CustomTimings.custom).to.have.lengthOf(1);
28+
expect(result.Root.CustomTimings.custom[0].ExecuteType).to.be.equal('custom')
29+
expect(result.Root.CustomTimings.custom[0].CommandString).to.be.equal('Sleeping...')
30+
expect(result.Root.CustomTimings.custom[0].DurationMilliseconds).to.be.above(result.DurationMilliseconds);
31+
done();
32+
});
33+
});
34+
35+
});
36+
1537
});

tests/server/default.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,16 @@ app.get('/step-two', (req, res) => {
2323
});
2424
});
2525

26+
app.get('/js-sleep', function(req, res) {
27+
var waitBeforeRender = function(ms) {
28+
setTimeout(function() {
29+
res.send();
30+
}, ms());
31+
}
32+
33+
req.miniprofiler.timeQuery('custom', 'Sleeping...', waitBeforeRender, function() {
34+
return 300
35+
});
36+
});
37+
2638
module.exports = require('./base.js')(app);

0 commit comments

Comments
 (0)