Skip to content

Commit

Permalink
Factorizo los tests
Browse files Browse the repository at this point in the history
  • Loading branch information
diegoefe committed Oct 18, 2016
1 parent 272d1a0 commit fb6c063
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 113 deletions.
35 changes: 35 additions & 0 deletions test/test-common.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
"use strict";

var fs = require('fs-promise');
var yaml = require('js-yaml');

var me = {};

me.setIfFileExists = function setIfFileExists(fileName, outObject, outProperty, options) {
return fs.exists(fileName).then(function(exists) {
if(exists) { return fs.readFile(fileName, (options || {encoding:'utf8'})); }
return { notExists: true };
}).then(function(content) {
if(! content.notExists) {
outObject[outProperty] = content;
}
});
}

me.loadYamlIfFileExists = function loadYamlIfFileExists(fileName) {
var res = {};
return me.setIfFileExists(fileName, res, 'all').then(function() {
return yaml.safeLoad(res.all || {});
});
}

me.defaultExpectedResult;

me.loadDefaultExpectedResult = function loadDefaultExpectedResult() {
if(me.defaultExpectedResult) { return Promise.resolve(me.defaultExpectedResult); }
return me.loadYamlIfFileExists('./test/fixtures/_default_.result.yaml').then(function(yml) {
me.defaultExpectedResult = yml;
});
}

module.exports = me;
67 changes: 7 additions & 60 deletions test/test-fast.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ var changing = require('best-globals').changing;
var yaml = require('js-yaml');
var stream = require('stream');
var util = require('util');
var common = require('./test-common');

function TestStream () {
stream.Writable.call(this);
Expand All @@ -22,62 +23,8 @@ TestStream.prototype._write = function (chunk, encoding, done) {
done();
}


var fastBufferingThreshold = 2;

function setIfFileExists(fileName, outObject, outProperty, options) {
return fs.exists(fileName).then(function(exists) {
if(exists) { return fs.readFile(fileName, (options || {encoding:'utf8'})); }
return { notExists: true };
}).then(function(content) {
if(! content.notExists) {
outObject[outProperty] = content;
}
});
}

function loadYamlIfFileExists(fileName) {
var res = {};
return setIfFileExists(fileName, res, 'all').then(function() {
return yaml.safeLoad(res.all || {});
});
}

function loadYaml(fileName) {
var res = {};
return setIfFileExists(fileName, res, 'all').then(function() {
if(!res.all) {
throw new Error('"'+fileName+'" debe existir');
}
return yaml.safeLoad(res.all);
});
}


var defaultExpectedResult;
function loadDefaultExpectedResult() {
if(defaultExpectedResult) { return Promise.resolve(defaultExpectedResult); }
return loadYamlIfFileExists('./test/fixtures/_default_.result.yaml').then(function(yml) {
defaultExpectedResult = yml;
});
}

function makeSqlArray(sqlsBuf) {
var iNL=0;
var sqlsArr=[];
while((iNL=sqlsBuf.indexOf(10,iNL))>=0){
if(sqlsBuf[iNL+1]===10 || sqlsBuf[iNL+1]===13 && sqlsBuf[iNL+2]===10){
sqlsArr.push(sqlsBuf.slice(0,iNL-(sqlsBuf[iNL-1]===13?1:0)));
sqlsBuf = sqlsBuf.slice(iNL+(sqlsBuf[iNL+1]===13?3:2));
iNL=0;
}else{
iNL++;
}
}
sqlsArr.push(sqlsBuf);
return sqlsArr;
}

var originalEngines = {};

describe("fast-fixtures", function(){
Expand Down Expand Up @@ -109,24 +56,24 @@ describe("fast-fixtures", function(){
var prepared;
var generated = new TestStream();
txtToSql.noCompactInsert = true;
setIfFileExists(basePath+'.in-opts.yaml', param, 'opts').then(function() {
common.setIfFileExists(basePath+'.in-opts.yaml', param, 'opts').then(function() {
if(param.opts) {
param.opts = changing(defaultOpts, yaml.safeLoad(param.opts));
} else {
param.opts = defaultOpts;
}
return setIfFileExists(basePath+'.txt', param, 'rawTable', {});
return common.setIfFileExists(basePath+'.txt', param, 'rawTable', {});
}).then(function() {
return loadDefaultExpectedResult();
return common.loadDefaultExpectedResult();
}).then(function() {
return loadYamlIfFileExists(basePath+'.result.yaml');
return common.loadYamlIfFileExists(basePath+'.result.yaml');
}).then(function(yml) {
expected = changing(JSON.parse(JSON.stringify(defaultExpectedResult)), yml);
expected = changing(JSON.parse(JSON.stringify(common.defaultExpectedResult)), yml);
if(param.opts.outputEncoding !== null && param.opts.outputEncoding !== 'UTF8') {
console.log("OE", param.opts.outputEncoding)
throw new Error('Unhandled output test! Re-think next setIfFileExists() line!!');
}
return setIfFileExists(basePath+'.sql', expected, 'rawSql', {});
return common.setIfFileExists(basePath+'.sql', expected, 'rawSql', {});
}).then(function() {
if(fixture.changeExpected) { fixture.changeExpected(expected); }
}).then(function() {
Expand Down
64 changes: 11 additions & 53 deletions test/test.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,60 +7,18 @@ var selfExplain = require('self-explain');
var differences = selfExplain.assert.allDifferences;
var changing = require('best-globals').changing;
var yaml = require('js-yaml');

function setIfFileExists(fileName, outObject, outProperty, options) {
return fs.exists(fileName).then(function(exists) {
if(exists) { return fs.readFile(fileName, (options || {encoding:'utf8'})); }
return { notExists: true };
}).then(function(content) {
if(! content.notExists) {
outObject[outProperty] = content;
}
});
}

function loadYamlIfFileExists(fileName) {
var res = {};
return setIfFileExists(fileName, res, 'all').then(function() {
return yaml.safeLoad(res.all || {});
});
}
var common = require('./test-common');

function loadYaml(fileName) {
var res = {};
return setIfFileExists(fileName, res, 'all').then(function() {
return common.setIfFileExists(fileName, res, 'all').then(function() {
if(!res.all) {
throw new Error('"'+fileName+'" debe existir');
}
return yaml.safeLoad(res.all);
});
}


var defaultExpectedResult;
function loadDefaultExpectedResult() {
if(defaultExpectedResult) { return Promise.resolve(defaultExpectedResult); }
return loadYamlIfFileExists('./test/fixtures/_default_.result.yaml').then(function(yml) {
defaultExpectedResult = yml;
});
}

function makeSqlArray(sqlsBuf) {
var iNL=0;
var sqlsArr=[];
while((iNL=sqlsBuf.indexOf(10,iNL))>=0){
if(sqlsBuf[iNL+1]===10 || sqlsBuf[iNL+1]===13 && sqlsBuf[iNL+2]===10){
sqlsArr.push(sqlsBuf.slice(0,iNL-(sqlsBuf[iNL-1]===13?1:0)));
sqlsBuf = sqlsBuf.slice(iNL+(sqlsBuf[iNL+1]===13?3:2));
iNL=0;
}else{
iNL++;
}
}
sqlsArr.push(sqlsBuf);
return sqlsArr;
}

describe("fixtures", function(){
[
{path:'example-one'},
Expand Down Expand Up @@ -118,24 +76,24 @@ describe("fixtures", function(){
var expected={};
var basePath='./test/fixtures/'+fixture.path;
var prepared;
setIfFileExists(basePath+'.in-opts.yaml', param, 'opts').then(function() {
common.setIfFileExists(basePath+'.in-opts.yaml', param, 'opts').then(function() {
if(param.opts) {
param.opts = changing(defaultOpts, yaml.safeLoad(param.opts));
} else {
param.opts = defaultOpts;
}
return setIfFileExists(basePath+'.txt', param, 'rawTable', {});
return common.setIfFileExists(basePath+'.txt', param, 'rawTable', {});
}).then(function() {
return loadDefaultExpectedResult();
return common.loadDefaultExpectedResult();
}).then(function() {
return loadYamlIfFileExists(basePath+'.result.yaml');
return common.loadYamlIfFileExists(basePath+'.result.yaml');
}).then(function(yml) {
expected = changing(JSON.parse(JSON.stringify(defaultExpectedResult)), yml);
expected = changing(JSON.parse(JSON.stringify(common.defaultExpectedResult)), yml);
if(param.opts.outputEncoding !== null && param.opts.outputEncoding !== 'UTF8') {
console.log("OE", param.opts.outputEncoding)
throw new Error('Unhandled output test! Re-think next setIfFileExists() line!!');
throw new Error('Unhandled output test! Re-think next common.setIfFileExists() line!!');
}
return setIfFileExists(basePath+'.sql', expected, 'rawSql', {});
return common.setIfFileExists(basePath+'.sql', expected, 'rawSql', {});
}).then(function() {
if(fixture.changeExpected) { fixture.changeExpected(expected); }
}).then(function() {
Expand Down Expand Up @@ -219,10 +177,10 @@ describe("input errors", function(){
var loaded={};
var param={};
var expected={};
setIfFileExists(basePath+'.param.yaml', loaded, 'param').then(function() {
common.setIfFileExists(basePath+'.param.yaml', loaded, 'param').then(function() {
if(loaded.param) { param = yaml.safeLoad(loaded.param); }
if(! param.opts) { param.opts={}; }
return setIfFileExists(basePath+'.txt', param, 'rawTable', {});
return common.setIfFileExists(basePath+'.txt', param, 'rawTable', {});
}).then(function() {
if(check.change) { check.change(param); }
return loadYaml(basePath+'.result.yaml');
Expand Down

0 comments on commit fb6c063

Please sign in to comment.