test-protocol-errors.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. var assert = require('assert');
  2. var common = require('../../common');
  3. var server = common.createServer(serverReady, function(conn) {
  4. conn.on('query', function(q) {
  5. conn.writeTextResult([ { '1': '1' } ], [ { catalog: 'def',
  6. schema: '',
  7. table: '',
  8. orgTable: '',
  9. name: '1',
  10. orgName: '',
  11. characterSet: 63,
  12. columnLength: 1,
  13. columnType: 8,
  14. flags: 129,
  15. decimals: 0 } ]);
  16. // this is extra (incorrect) packet - client should emit error on receiving it
  17. conn.writeOk();
  18. });
  19. });
  20. var fields, error;
  21. var query = 'SELECT 1';
  22. function serverReady() {
  23. var connection = common.createConnection({ port: 3307 });
  24. connection.query(query, function(err, _rows, _fields) {
  25. if (err) throw err;
  26. rows = _rows;
  27. fields = _fields;
  28. });
  29. connection.on('error', function(err) {
  30. error = err;
  31. server.close();
  32. });
  33. }
  34. process.on('exit', function() {
  35. assert.deepEqual(rows, [{1: 1}]);
  36. assert.equal(fields[0].name, '1');
  37. assert.equal(error.message, 'Unexpected packet while no commands in the queue');
  38. assert.equal(error.fatal, true);
  39. assert.equal(error.code, 'PROTOCOL_UNEXPECTED_PACKET');
  40. });