knex/test/unit/dialects/oracledb.js

109 lines
2.7 KiB
JavaScript
Raw Normal View History

// global it, describe, expect
'use strict';
var _ = require('lodash');
var expect = require('chai').expect;
var knex = require('../../../knex');
var config = require('../../knexfile');
describe('OracleDb externalAuth', function() {
var knexInstance = knex({
client: 'oracledb',
connection: {
user: 'user',
password: 'password',
connectString: 'connect-string',
externalAuth: true,
host: 'host',
database: 'database',
},
});
var spy;
before(function() {
spy = sinon.spy(knexInstance.client.driver, 'getConnection');
});
it('externalAuth and connectString should be sent to the getConnection', function() {
var connectionWithExternalAuth = {
connectString: 'connect-string',
externalAuth: true,
};
knexInstance.client
.acquireRawConnection()
.then(function(resolve) {}, function(reject) {});
expect(spy).to.have.callCount(1);
expect(spy).to.have.been.calledWith(connectionWithExternalAuth);
});
after(function() {
knexInstance.client.driver.getConnection.restore();
});
});
describe('OracleDb parameters', function() {
describe('with fetchAsString parameter', function() {
var knexClient;
before(function() {
var conf = _.clone(config.oracledb);
conf.fetchAsString = ['number', 'DATE', 'cLOb'];
knexClient = knex(conf);
return knexClient;
});
it('on float', function() {
return knexClient
.raw('select 7.329 as "field" from dual')
.then(function(result) {
expect(result[0]).to.be.ok;
expect(result[0].field).to.be.a('string');
});
});
it('on date', function() {
return knexClient
.raw('select CURRENT_DATE as "field" from dual')
.then(function(result) {
expect(result[0]).to.be.ok;
expect(result[0].field).to.be.a('string');
});
});
after(function() {
return knexClient.destroy();
});
});
describe('without fetchAsString parameter', function() {
var knexClient;
before(function() {
knexClient = knex(config.oracledb);
return knexClient;
});
it('on float', function() {
return knexClient
.raw('select 7.329 as "field" from dual')
.then(function(result) {
expect(result[0]).to.be.ok;
expect(result[0].field).to.not.be.a('string');
});
});
it('on date', function() {
return knexClient
.raw('select CURRENT_DATE as "field" from dual')
.then(function(result) {
expect(result[0]).to.be.ok;
expect(result[0].field).to.not.be.a('string');
});
});
after(function() {
return knexClient.destroy();
});
});
});