1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- const assert = require('assert')
- const Cursor = require('../')
- const pg = require('pg')
- const text = 'SELECT generate_series as num FROM generate_series(0, 50)'
- describe('close', function () {
- beforeEach(function (done) {
- const client = (this.client = new pg.Client())
- client.connect(done)
- })
- this.afterEach(function (done) {
- this.client.end(done)
- })
- it('can close a finished cursor without a callback', function (done) {
- const cursor = new Cursor(text)
- this.client.query(cursor)
- this.client.query('SELECT NOW()', done)
- cursor.read(100, function (err) {
- assert.ifError(err)
- cursor.close()
- })
- })
- it('can close a finished cursor a promise', function (done) {
- const cursor = new Cursor(text)
- this.client.query(cursor)
- cursor.read(100, (err) => {
- assert.ifError(err)
- cursor.close().then(() => {
- this.client.query('SELECT NOW()', done)
- })
- })
- })
- it('closes cursor early', function (done) {
- const cursor = new Cursor(text)
- this.client.query(cursor)
- this.client.query('SELECT NOW()', done)
- cursor.read(25, function (err) {
- assert.ifError(err)
- cursor.close()
- })
- })
- it('works with callback style', function (done) {
- const cursor = new Cursor(text)
- const client = this.client
- client.query(cursor)
- cursor.read(25, function (err, rows) {
- assert.ifError(err)
- assert.strictEqual(rows.length, 25)
- cursor.close(function (err) {
- assert.ifError(err)
- client.query('SELECT NOW()', done)
- })
- })
- })
- it('is a no-op to "close" the cursor before submitting it', function (done) {
- const cursor = new Cursor(text)
- cursor.close(done)
- })
- })
|