Skip to content

Commit 6bc6d86

Browse files
committed
feat(query): add timeout test
1 parent 5fa053a commit 6bc6d86

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

lib/commands/query.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,11 @@ class Query extends Command {
7070

7171
done() {
7272
this._unpipeStream();
73+
// if all ready timeout, return null directly
74+
if (this.timeout && !this.queryTimeout) {
75+
return null;
76+
}
77+
// else clear timer
7378
if (this.queryTimeout) {
7479
Timers.clearTimeout(this.queryTimeout);
7580
this.queryTimeout = null;
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
'use strict';
2+
3+
const common = require('../../common');
4+
const connection = common.createConnection({ debug: false });
5+
const assert = require('assert');
6+
7+
connection.query({ sql: 'SELECT sleep(3) as a', timeout: 500 }, (err, res) => {
8+
assert.equal(res, null);
9+
assert.ok(err);
10+
assert.equal(err.code, 'PROTOCOL_SEQUENCE_TIMEOUT');
11+
assert.equal(err.message, 'Query inactivity timeout');
12+
});
13+
14+
connection.query({ sql: 'SELECT sleep(1) as a', timeout: 5000 }, (err, res) => {
15+
assert.deepEqual(res, [{ a: 0 }]);
16+
});
17+
18+
connection.query('SELECT sleep(1) as a', (err, res) => {
19+
assert.deepEqual(res, [{ a: 0 }]);
20+
connection.end();
21+
});

0 commit comments

Comments
 (0)