mirror of
https://github.com/brianc/node-postgres.git
synced 2025-12-08 20:16:25 +00:00
56 lines
1.7 KiB
JavaScript
56 lines
1.7 KiB
JavaScript
var helper = require('./test-helper');
|
|
const suite = new helper.Suite()
|
|
|
|
suite.test('emits notify message', function (done) {
|
|
var client = helper.client();
|
|
client.query('LISTEN boom', assert.calls(function () {
|
|
var otherClient = helper.client();
|
|
var bothEmitted = -1
|
|
otherClient.query('LISTEN boom', assert.calls(function () {
|
|
assert.emits(client, 'notification', function (msg) {
|
|
//make sure PQfreemem doesn't invalidate string pointers
|
|
setTimeout(function () {
|
|
assert.equal(msg.channel, 'boom');
|
|
assert.ok(msg.payload == 'omg!' /*9.x*/ || msg.payload == '' /*8.x*/, "expected blank payload or correct payload but got " + msg.message)
|
|
client.end(++bothEmitted ? done : undefined)
|
|
}, 100)
|
|
});
|
|
assert.emits(otherClient, 'notification', function (msg) {
|
|
assert.equal(msg.channel, 'boom');
|
|
otherClient.end(++bothEmitted ? done : undefined);
|
|
});
|
|
|
|
client.query("NOTIFY boom, 'omg!'", function (err, q) {
|
|
if (err) {
|
|
//notify not supported with payload on 8.x
|
|
client.query("NOTIFY boom")
|
|
}
|
|
});
|
|
}));
|
|
}));
|
|
})
|
|
|
|
// this test fails on travis due to their config
|
|
suite.test('emits notice message', false, function (done) {
|
|
if (helper.args.native) {
|
|
console.error('need to get notice message working on native')
|
|
return done()
|
|
}
|
|
//TODO this doesn't work on all versions of postgres
|
|
var client = helper.client();
|
|
const text = `
|
|
DO language plpgsql $$
|
|
BEGIN
|
|
RAISE NOTICE 'hello, world!';
|
|
END
|
|
$$;
|
|
`
|
|
client.query(text, () => {
|
|
client.end();
|
|
});
|
|
assert.emits(client, 'notice', function (notice) {
|
|
assert.ok(notice != null);
|
|
done();
|
|
});
|
|
})
|