Repository navigation
Expand file tree
/
Copy pathconnect.test.js
More file actions
executable file
·88 lines (78 loc) · 2.26 KB
/
Copy pathconnect.test.js
File metadata and controls
executable file
·88 lines (78 loc) · 2.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
'use strict'
/* globals describe it */
const assert = require('chai').assert
const expect = require('chai').expect
const { TestEnv } = require('./env/test-env')
const env = new TestEnv()
const connectionString = env.connectionString
describe('connection', function () {
this.timeout(10000)
this.beforeEach(done => {
env.open().then(() => { done() }).catch((err) => { done(err) })
})
this.afterEach(done => {
env.close().then(() => { done() }).catch((err) => { done(err) })
})
it('connection closes OK in sequence with query', done => {
env.sql.open(connectionString,
(err, conn) => {
const expected = [{
n: 1
}]
assert(err === null || err === false)
conn.query('SELECT 1 as n', (err, results) => {
assert.ifError(err)
expect(results).to.deep.equal(expected)
conn.close(() => {
done()
})
})
})
})
it('verify closed connection throws an exception', done => {
env.sql.open(connectionString, (err, conn) => {
assert(err === null || err === false)
conn.close(() => {
expect(() => {
conn.query('SELECT 1', err => {
assert.ifError(err)
})
}).throws('[msnodesql] Connection is closed.')
done()
})
})
})
it('verify connection is not closed prematurely until a query is complete', done => {
env.sql.open(connectionString, (err, conn) => {
assert(err === null || err === false)
const stmt = conn.queryRaw('select 1')
stmt.on('meta', () => {
})
stmt.on('column', (c, d) => {
assert(c === 0 && d === 1)
})
stmt.on('error', err => {
assert(err === null || err === false)
})
stmt.on('row', r => {
assert(r === 0)
conn.close(() => {
done()
})
})
})
})
it('verify that close immediately flag only accepts booleans', done => {
env.sql.open(connectionString, (err, conn) => {
assert(err === null || err === false)
expect(() => {
conn.close('SELECT 1', err => {
assert(err === null || err === false)
})
}).throws('[msnodesql] Invalid parameters passed to close.')
conn.close(() => {
done()
})
})
})
})