Skip to content

Commit 1fb3a94

Browse files
committed
Add test for bigint casting
1 parent dd002b0 commit 1fb3a94

File tree

3 files changed

+46
-36
lines changed

3 files changed

+46
-36
lines changed

test/common/tests.js

+8
Original file line numberDiff line numberDiff line change
@@ -1250,6 +1250,14 @@ module.exports = (sql, driver) => {
12501250
}).catch(done)
12511251
},
12521252

1253+
'BigInt casted types' (done) {
1254+
const req = new TestRequest()
1255+
req.query('SELECT cast(9223372036854775807 AS BigInt) as bignumber').then(result => {
1256+
assert.strictEqual(result.recordset[0].bignumber, '9223372036854775807')
1257+
done()
1258+
}).catch(done)
1259+
},
1260+
12531261
'dataLength type correction' (done) {
12541262
sql.on('error', err => console.error(err))
12551263
const req = new TestRequest()

test/msnodesqlv8/msnodesqlv8.js

+19-18
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,10 @@ const sql = require('../../msnodesqlv8')
88
const TESTS = require('../common/tests.js')(sql, 'msnodesqlv8')
99
const TIMES = require('../common/times.js')(sql, 'msnodesqlv8')
1010
const versionHelper = require('../common/versionhelper')
11+
const { readFileSync } = require('fs')
1112

1213
const config = function () {
13-
const cfg = JSON.parse(require('fs').readFileSync(join(__dirname, '../.mssql.json')))
14+
const cfg = JSON.parse(readFileSync(join(__dirname, '../.mssql.json')))
1415
cfg.driver = 'msnodesqlv8'
1516
return cfg
1617
}
@@ -19,23 +20,22 @@ let connection1 = null
1920
let connection2 = null
2021

2122
describe('msnodesqlv8', function () {
22-
before(done =>
23-
sql.connect(config(), function (err) {
24-
if (err) return done(err)
25-
26-
let req = new sql.Request()
27-
req.batch(require('fs').readFileSync(join(__dirname, '../cleanup.sql'), 'utf8'), function (err) {
28-
if (err) return done(err)
29-
30-
req = new sql.Request()
31-
req.batch(require('fs').readFileSync(join(__dirname, '../prepare.sql'), 'utf8'), function (err) {
32-
if (err) return done(err)
33-
34-
sql.close(done)
23+
before(done => {
24+
try {
25+
sql.connect(config())
26+
.then(() => {
27+
return new sql.Request().query(readFileSync(join(__dirname, '../cleanup.sql'), 'utf8'))
3528
})
36-
})
37-
})
38-
)
29+
.then(() => {
30+
return new sql.Request().query(readFileSync(join(__dirname, '../prepare.sql'), 'utf8'))
31+
})
32+
.catch(done)
33+
.then(() => sql.close())
34+
.then(() => done())
35+
} catch (e) {
36+
done(e)
37+
}
38+
})
3939
afterEach(() => sql.valueHandler.clear())
4040

4141
describe('basic test suite', function () {
@@ -90,6 +90,7 @@ describe('msnodesqlv8', function () {
9090
it('connection healthy works', done => TESTS['connection healthy works'](config(), done))
9191
it('healthy connection goes bad', done => TESTS['healthy connection goes bad'](config(), done))
9292
it('request timeout', done => TESTS['request timeout'](done))
93+
it('BigInt casted types', done => TESTS['BigInt casted types'](done))
9394
it('dataLength type correction', done => TESTS['dataLength type correction'](done))
9495
it('chunked xml support', done => TESTS['chunked xml support'](done))
9596

@@ -244,7 +245,7 @@ describe('msnodesqlv8', function () {
244245
if (err) return done(err)
245246

246247
const req = new sql.Request()
247-
req.query(require('fs').readFileSync(join(__dirname, '../cleanup.sql'), 'utf8'), function (err) {
248+
req.query(readFileSync(join(__dirname, '../cleanup.sql'), 'utf8'), function (err) {
248249
if (err) return done(err)
249250

250251
sql.close(done)

test/tedious/tedious.js

+19-18
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
const sql = require('../../tedious.js')
66
const assert = require('assert')
77
const { join } = require('path')
8+
const { readFileSync } = require('fs')
89

910
const TESTS = require('../common/tests.js')(sql, 'tedious')
1011
const TIMES = require('../common/times.js')(sql, 'tedious')
@@ -16,7 +17,7 @@ if (parseInt(process.version.match(/^v(\d+)\./)[1]) > 0) {
1617
}
1718

1819
const config = function () {
19-
const cfg = JSON.parse(require('fs').readFileSync(join(__dirname, '../.mssql.json')))
20+
const cfg = JSON.parse(readFileSync(join(__dirname, '../.mssql.json')))
2021
cfg.driver = 'tedious'
2122
return cfg
2223
}
@@ -25,23 +26,22 @@ let connection1 = null
2526
let connection2 = null
2627

2728
describe('tedious', () => {
28-
before(done =>
29-
sql.connect(config(), err => {
30-
if (err) return done(err)
31-
32-
let req = new sql.Request()
33-
req.query(require('fs').readFileSync(join(__dirname, '../cleanup.sql'), 'utf8'), err => {
34-
if (err) return done(err)
35-
36-
req = new sql.Request()
37-
req.query(require('fs').readFileSync(join(__dirname, '../prepare.sql'), 'utf8'), err => {
38-
if (err) return done(err)
39-
40-
sql.close(done)
29+
before(done => {
30+
try {
31+
sql.connect(config())
32+
.then(() => {
33+
return new sql.Request().query(readFileSync(join(__dirname, '../cleanup.sql'), 'utf8'))
4134
})
42-
})
43-
})
44-
)
35+
.then(() => {
36+
return new sql.Request().query(readFileSync(join(__dirname, '../prepare.sql'), 'utf8'))
37+
})
38+
.catch(done)
39+
.then(() => sql.close())
40+
.then(() => done())
41+
} catch (e) {
42+
done(e)
43+
}
44+
})
4545
afterEach(() => sql.valueHandler.clear())
4646

4747
describe('basic test suite', () => {
@@ -99,6 +99,7 @@ describe('tedious', () => {
9999
it('connection healthy works', done => TESTS['connection healthy works'](config(), done))
100100
it('healthy connection goes bad', done => TESTS['healthy connection goes bad'](config(), done))
101101
it('request timeout', done => TESTS['request timeout'](done, 'tedious', /Timeout: Request failed to complete in 1000ms/))
102+
it('BigInt casted types', done => TESTS['BigInt casted types'](done))
102103
it('dataLength type correction', done => TESTS['dataLength type correction'](done))
103104
it('type validation', done => TESTS['type validation']('query', done))
104105
it('type validation (batch)', done => TESTS['type validation']('batch', done))
@@ -344,7 +345,7 @@ describe('tedious', () => {
344345
if (err) return done(err)
345346

346347
const req = new sql.Request()
347-
req.query(require('fs').readFileSync(join(__dirname, '../cleanup.sql'), 'utf8'), function (err) {
348+
req.query(readFileSync(join(__dirname, '../cleanup.sql'), 'utf8'), function (err) {
348349
if (err) return done(err)
349350

350351
sql.close(done)

0 commit comments

Comments
 (0)