12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- var assert = require('assert');
- var common = require('../../common');
- var connection = common.createConnection();
- // create test user first
- connection.query("GRANT ALL ON *.* TO 'changeuser1'@'localhost' IDENTIFIED BY 'changeuser1pass'");
- connection.query("GRANT ALL ON *.* TO 'changeuser2'@'localhost' IDENTIFIED BY 'changeuser2pass'");
- connection.query('FLUSH PRIVILEGES');
- connection.changeUser({
- user: 'changeuser1',
- password: 'changeuser1pass'
- });
- connection.query('select user()', function(err, rows) {
- if (err) throw err;
- assert.deepEqual(rows, [ { 'user()': 'changeuser1@localhost' } ]);
- });
- connection.changeUser({
- user: 'changeuser2',
- password: 'changeuser2pass'
- });
- connection.query('select user()', function(err, rows) {
- if (err) throw err;
- assert.deepEqual(rows, [ { 'user()': 'changeuser2@localhost' } ]);
- });
- connection.changeUser({
- user: 'changeuser1',
- passwordSha1: new Buffer('f961d39c82138dcec42b8d0dcb3e40a14fb7e8cd', 'hex') // sha1(changeuser1pass)
- });
- connection.query('select user()', function(err, rows) {
- if (err) throw err;
- assert.deepEqual(rows, [ { 'user()': 'changeuser1@localhost' } ]);
- });
- connection.end();
- // from felixge/node-mysql/test/unit/connection/test-change-database-fatal-error.js:
- // This test verifies that changeUser errors are treated as fatal errors. The
- // rationale for that is that a failure to execute a changeUser sequence may
- // cause unexpected behavior for queries that were enqueued under the
- // assumption of changeUser to succeed.
- var beforeChange = 1;
- connection.changeUser({database: 'does-not-exist'}, function (err) {
- assert.ok(err, 'got error');
- assert.equal(err.code, 'ER_BAD_DB_ERROR');
- assert.equal(err.fatal, true);
- });
- connection.on('error', function(err) {
- assert.ok(err, 'got disconnect');
- assert.equal(err.code, 'PROTOCOL_CONNECTION_LOST');
- assert.equal(beforeChange, 1);
- });
|