@incdevco/framework
Version:
node.js lambda framework
134 lines (72 loc) • 2.6 kB
JavaScript
var Expect = require('chai').expect;
var Mock = require('../../mock');
var Connection = require('./index');
var Sql = require('../sql');
describe('pg connection', function () {
'use strict';
var client, connection, expected, mock;
beforeEach(function () {
client = {};
connection = new Connection(client);
expected = 'expected';
mock = new Mock();
});
describe('delete', function() {
it('should', function () {
var result = connection.delete();
Expect(result).to.be.instanceof(Sql.Delete,'query');
});
});
describe('insert', function() {
it('should', function () {
var result = connection.insert('data');
Expect(result).to.be.instanceof(Sql.Insert, 'query');
Expect(result._data).to.equal('data', 'data');
});
});
describe('log', function() {
it('should pass input to logger', function (done) {
connection.logger = {};
mock.mock(connection.logger).expect('log')
.with('test')
.willReturn(true);
connection.log('test');
mock.done(done);
});
});
describe('query', function() {
it('should call query on client', function (done) {
var sql = 'sql', inserts = [];
mock.mock(connection).expect('log')
.with('query', 'sql', [])
.willReturn(true);
mock.mock(client).expect('query')
.with(sql, inserts)
.willReturn(expected);
Expect(connection.query(sql, inserts)).to.equal(expected, 'actual');
mock.done(done);
});
});
describe('release', function() {
it('should call release on client', function (done) {
mock.mock(client).expect('release')
.willReturn(expected);
Expect(connection.release()).to.equal(expected, 'actual');
mock.done(done);
});
});
describe('select', function() {
it('should', function () {
var result = connection.select('*');
Expect(result).to.be.instanceof(Sql.Select, 'query');
Expect(result._select).to.equal('*', 'data');
});
});
describe('update', function() {
it('should', function () {
var result = connection.update('table');
Expect(result).to.be.instanceof(Sql.Update, 'query');
Expect(result._table).to.equal('table', 'table');
});
});
});