38 Commits

Author SHA1 Message Date
Charmander
3828aa8608 Queued query errors (#1503)
* Add tests for query callbacks after connection-level errors

* Ensure callbacks are executed for all queued queries after connection-level errors

Separates socket errors from error messages, sends socket errors to all queries in the queue, marks clients as unusable after socket errors.

This is not very pleasant but should maintain backwards compatibility…?

* Always call `handleError` asynchronously

This doesn’t match the original behaviour of the type errors, but it’s correct.

* Fix return value of `Client.prototype.query` in immediate error cases

* Mark clients with closed connections as unusable consistently

* Add tests for error event when connecting Client

* Ensure the promise and callback versions of Client#connect always have the same behaviour

* Give same error to queued queries as to active query when ending

and do so in the native Client as well.

* Restore original ordering between queued query callbacks and 'end' event
2018-10-03 10:37:15 -05:00
Brian C
8798e50ad3 Re-enable eslint with standard format (#1367)
* Work on converting lib to standard

* Finish updating lib

* Finish linting lib

* Format test files

* Add .eslintrc with standard format

* Supply full path to eslint bin

* Move lint command to package.json

* Add eslint as dev dependency
2017-07-15 12:05:58 -05:00
Brian M. Carlson
f7de9ce820 Non-array query values cause query to end with an error.
This is a small change and is _kinda_ backwards compatible since the old behavior was to throw an error, but if someone was relying on anything with `.map` working as values it would break them, so it's in a major semver bump.
2017-07-15 11:19:37 -05:00
Brian Carlson
27450d07e6 Throw on reconnect attempt
Clients are not reusable.  This changes the client to raise errors whenever you try to reconnect a client that's already been used.  They're cheap to create: just instantiate a new one (or use the pool) 😉.

Closes #1352
2017-07-15 11:02:09 -05:00
Brian M. Carlson
a83655a396 Remove console.log statement 2017-06-18 17:23:58 -05:00
Brian M. Carlson
da71ea58f6 Add query validity check
Passing nothing for both the query.text and query.name is unsupported but previously crashed with an impossible to catch error.
2017-06-18 17:15:46 -05:00
Brian M. Carlson
bd87cddc72 Fix connection / disconnection issues 2017-06-18 16:48:14 -05:00
Brian M. Carlson
0f1f8626cf Add use strict to every file 2017-06-18 16:48:14 -05:00
Brian M. Carlson
2c3f55e5bd Make all tests pass 2017-06-15 10:32:38 -05:00
Brian M. Carlson
c961c900d6 Almost all tests passing 2017-06-15 10:32:38 -05:00
Brian M. Carlson
3219db993a All tests passing 2017-06-15 10:32:38 -05:00
Brian M. Carlson
3a7b226fe3 WIP 2017-06-15 10:32:38 -05:00
Brian M. Carlson
b8c2bebcac Fix more tests to use query instance 2017-06-15 10:32:38 -05:00
Brian M. Carlson
2f3d72a28c Start fixing integration tests 2017-06-15 10:32:38 -05:00
Brian Carlson
76c59a01f2 Emit error when backend unexpectedly disconnects 2017-06-09 12:27:47 -05:00
Brian M. Carlson
d2bb532d73 Make moar tests pass 2014-09-14 21:11:51 -04:00
Brian M. Carlson
667c528ea6 Work towards more tests passing 2014-09-14 01:23:02 -04:00
Maciek Sakrejda
816e9b43ea Use the standard postgres:// URL prefix for consistency
Fixes #286.
2013-07-22 10:45:26 -07:00
Brian Carlson
3f4a44e973 Skip error test on travis
Some weird thing with the environment up there is causing the test
to fail about 30% of the time it runs.
2013-07-08 08:04:53 -05:00
Brian Carlson
d3ba322e3c Add more output to test to help debug it on travis 2013-07-05 12:52:04 -05:00
bmc
95507dac5f Enable connection failure error handling tests 2013-06-30 11:39:07 -07:00
brianc
683d636501 better handling of client stream termination
1. Pass an error to an active query if the client is ended while a query is in progress.
2. actually emit 'end' event on the client when the stream ends
3. do not emit an error from native bindings if lasterror is null
2013-03-28 13:24:33 -05:00
brianc
40f084460e ignore hanging tests 2012-10-15 17:43:14 -05:00
booo
ccc3f81dfa enable some useful test cases again 2012-07-06 15:59:38 +02:00
brianc
913207575b use node-gyp - closes #132 2012-06-18 22:43:30 -05:00
Alexander Sulfrian
6b032c466b added test-binary target
integration tests could now be started in binary mode
some tests are executed in text mode anyway, they are currently not
compatible with binary mode or prepared statements at all
(f.e. multiple statements in one query)
2011-11-22 05:01:00 +01:00
brianc
06585d6e2c require 'util' instead of 'sys' 2011-10-10 19:40:52 -05:00
brianc
afe4382c63 change assert.length to assert.lengthIs 2011-10-10 19:21:06 -05:00
brianc
2835f25e3f make booo's tests pass for the native client 2011-10-03 03:26:50 -05:00
booo
38f4b04140 error-handling-test: implemented some tests for the Client.prototype.connect with callback (#52) 2011-10-03 03:26:50 -05:00
brianc
f395ee646f fix failing error handling tests 2011-07-10 13:34:25 -05:00
brianc
7fb6c430df failing test (currently ignored) for pure js connection error handling 2011-06-02 07:28:05 -05:00
brianc
94f670590f support for connecting via hostname with native bindings (using node async dns lookup instead of sync libpq dns) 2011-05-05 19:13:43 -05:00
brianc
3399352383 errors from libpq come back with appropriate data 2011-03-04 22:28:40 +00:00
brianc
d38ea0131f passing more tests 2011-03-03 18:29:00 +00:00
Brian Carlson
6585f85d03 query object now emits query related errors, client object no longer
emits query related errors
2010-11-14 16:50:38 -06:00
brianc
d2079478da change name of assert.raises to assert.emits 2010-10-31 14:43:10 -05:00
brianc
b5d02a995a basic test for client error handling 2010-10-26 08:51:12 -05:00