UNPKG

sqlpad

Version:

Web app. Write SQL and visualize the results. Supports Postgres, MySQL, SQL Server, Crate, Vertica and SAP HANA.

86 lines (76 loc) 2.44 kB
const assert = require('assert'); const hdb = require('./index.js'); const connection = { name: 'test hdb (SAP HANA)', driver: 'hdb', host: 'localhost', hanaport: 39017, hanadatabase: 'HXE', username: 'SYSTEM', password: 'SQLPad1!', hanaSchema: 'SYSTEM', maxRows: 50000 }; const initSqls = [ 'CREATE TABLE test ( ID INTEGER );', 'INSERT INTO test VALUES (1);', 'INSERT INTO test VALUES (2);', 'INSERT INTO test VALUES (3);' ]; describe('drivers/hdb', function() { before(function() { this.timeout(10000); let seq = hdb.runQuery('DROP TABLE test;', connection).catch(() => { // ignore error - table might not exist }); initSqls.forEach(sql => { seq = seq.then(() => hdb.runQuery(sql, connection)); }); return seq; }); it('tests connection', function() { return hdb.testConnection(connection); }); it('getSchema()', function() { return hdb.getSchema(connection).then(schemaInfo => { assert(schemaInfo.SYSTEM, 'SYSTEM'); assert(schemaInfo.SYSTEM.TEST, 'SYSTEM.TEST'); const columns = schemaInfo.SYSTEM.TEST; assert.equal(columns.length, 1, 'columns.length'); assert.equal(columns[0].table_schema, 'SYSTEM', 'table_schema'); assert.equal(columns[0].table_name, 'TEST', 'table_name'); assert.equal(columns[0].column_name, 'ID', 'column_name'); assert(columns[0].hasOwnProperty('data_type'), 'data_type'); }); }); it('runQuery under limit', function() { return hdb .runQuery('SELECT id FROM test WHERE id = 1;', connection) .then(results => { assert(!results.incomplete, 'not incomplete'); assert.equal(results.rows.length, 1, 'rows length'); }); }); it('runQuery over limit', function() { const limitedConnection = Object.assign({}, connection, { maxRows: 2 }); return hdb .runQuery('SELECT * FROM test;', limitedConnection) .then(results => { assert(results.incomplete, 'incomplete'); assert.equal(results.rows.length, 2, 'row length'); }); }); it('returns descriptive error message', function() { let error; // NOTE: SAP HANA turns things into ALL CAPS return hdb .runQuery('SELECT * FROM MISSING_TABLE;', connection) .catch(e => { error = e; }) .then(() => { assert(error); assert(error.toString().indexOf('MISSING_TABLE') > -1); }); }); });