1
0
mirror of /repos/Prototyper.git synced 2025-12-30 06:31:32 +01:00

more tests

This commit is contained in:
Aiko Mastboom 2013-05-12 22:49:03 +02:00
parent cb4e0fc1d0
commit 702d96a79f

View File

@ -45,7 +45,7 @@ describe('Helpers', function () {
}
var i, values = [ null, undefined, '', 'hello', {}, []];
for (i=0; i < values.length; i += 1) {
for (i = 0; i < values.length; i += 1) {
it('should ignore non text input ' + values[i], testText(values[i]));
}
});
@ -83,19 +83,20 @@ describe('Helpers', function () {
expect(callback).to.be.a('function');
callback(null, {});
}
var once = true;
var promise = helper.replace(text, null, getReplacement, once);
expect(when.isPromise(promise)).to.be.ok;
promise.then(
function onSuccess(result) {
try{
try {
expect(result).to.be.instanceof(Array);
expect(result).to.have.length(1); // due to once == true
expect(result[0]).to.be.ok;
expect(result[0].replacement).to.not.be.ok;
expect(result[0]).to.have.property('regExp');
expect(result[0].regExp.source).to.equal('<!--\\s*@@null\\s*-->');
}catch(e){
} catch (e) {
// work around 'when eating exceptions'
return done(e);
}
@ -118,22 +119,23 @@ describe('Helpers', function () {
value: '#'});
}
var once = false;
var promise = helper.replace(text, null, getReplacement, once);
expect(when.isPromise(promise)).to.be.ok;
promise.then(
function onSuccess(result) {
try{
try {
expect(result).to.be.instanceof(Array);
expect(result).to.have.length(2); // due to 'once' being false
var i;
for(i=0; i<result.length; i += 1) {
for (i = 0; i < result.length; i += 1) {
expect(result[i]).to.be.ok;
expect(result[i]).to.have.property('replacement','#');
expect(result[i]).to.have.property('replacement', '#');
expect(result[i]).to.have.property('regExp');
expect(result[i].regExp.source).to.equal('What?');
}
}catch(e){
} catch (e) {
// work around 'when eating exceptions'
return done(e);
}
@ -155,10 +157,11 @@ describe('Helpers', function () {
var marker2 = '<!-- @@test__B -->';
var text = 'Hello' + marker1 + 'World' + marker2 + '!!';
var called = 0;
function getReplacement(result, callback) {
if (called) {
expect(result).to.be.equal(marker2);
}else {
} else {
called += 1;
expect(result).to.be.equal(marker1);
}
@ -168,22 +171,23 @@ describe('Helpers', function () {
value: '#'});
}
var once = false;
var promise = helper.replace(text, marker_tag, getReplacement, once);
expect(when.isPromise(promise)).to.be.ok;
promise.then(
function onSuccess(result) {
try{
try {
expect(result).to.be.instanceof(Array);
expect(result).to.have.length(2); // due to 'once' being false
var i;
for(i=0; i<result.length; i += 1) {
for (i = 0; i < result.length; i += 1) {
expect(result[i]).to.be.ok;
expect(result[i]).to.have.property('replacement','#');
expect(result[i]).to.have.property('replacement', '#');
expect(result[i]).to.have.property('regExp');
expect(result[i].regExp.source).to.equal('What?');
}
}catch(e){
} catch (e) {
// work around 'when eating exceptions'
return done(e);
}
@ -201,15 +205,16 @@ describe('Helpers', function () {
var marker2 = '<!-- @@__A_test -->';
var marker3 = '<!-- @@test_B____B_test -->';
var text = 'Hello' + marker1 + 'World' + marker2 + '!!' + marker3 +
'Greetings' + marker1 + 'Earthlings' + marker3 + '!!' + marker2;
'Greetings' + marker1 + 'Earthlings' + marker3 + '!!' + marker2;
var called = 0;
function getReplacement(result, callback) {
//console.log('result',called,result);
if (called === 2) {
expect(result).to.be.equal('<!-- @@test_A__ -->Earthlings<!-- @@test_B____B_test -->!!<!-- @@__A_test -->');
}else if (called === 1) {
} else if (called === 1) {
expect(result).to.be.equal('<!-- @@test_B____B_test -->');
}else {
} else {
expect(result).to.be.equal('<!-- @@test_A__ -->World<!-- @@__A_test -->');
}
called += 1;
@ -219,22 +224,23 @@ describe('Helpers', function () {
value: '#'});
}
var once = false;
var promise = helper.replace(text, marker_tag, getReplacement, once);
expect(when.isPromise(promise)).to.be.ok;
promise.then(
function onSuccess(result) {
try{
try {
expect(result).to.be.instanceof(Array);
expect(result).to.have.length(3); // due to 'once' being false
var i;
for(i=0; i<result.length; i += 1) {
for (i = 0; i < result.length; i += 1) {
expect(result[i]).to.be.ok;
expect(result[i]).to.have.property('replacement','#');
expect(result[i]).to.have.property('replacement', '#');
expect(result[i]).to.have.property('regExp');
expect(result[i].regExp.source).to.equal('What?');
}
}catch(e){
} catch (e) {
// work around 'when eating exceptions'
return done(e);
}
@ -248,4 +254,97 @@ describe('Helpers', function () {
});
});
describe('handTextManipulation', function () {
function testText(text) {
return function (done) {
helper.handTextManipulation(text, [], null, function (err, handledText) {
try {
expect(text).to.equal(handledText);
} catch (e) {
return done(e);
}
done();
});
};
}
var i, values = [ null, undefined, '', 'hello', {}, []];
for (i = 0; i < values.length; i += 1) {
it('should return input when there are no promisses ' + values[i], testText(values[i]));
}
it('should callback with an error when one of the promises fails', function (done) {
var d1 = when.defer();
var p1 = d1.promise;
d1.resolve('good');
var d2 = when.defer();
var p2 = d2.promise;
d2.reject('fail');
helper.handTextManipulation(null, [p1, p2], null, function (err, handledText) {
try {
expect(err).to.equal('fail');
} catch (e) {
return done(e);
}
done();
});
});
it('should callback with an error when handler is missing', function (done) {
var d1 = when.defer();
var p1 = d1.promise;
d1.resolve('good');
var d2 = when.defer();
var p2 = d2.promise;
d2.resolve('fine');
helper.handTextManipulation(null, [p1, p2], null, function (err, handledText) {
try {
expect(err).to.be.an.instanceof(Error);
expect(handledText).to.not.be.ok;
} catch (e) {
return done(e);
}
done();
});
});
it('should callback with an error when handler is missing', function (done) {
var d1 = when.defer();
var p1 = d1.promise;
d1.resolve(['good', 'better', 'best']);
var d2 = when.defer();
var p2 = d2.promise;
d2.resolve(['fine', 'finer']);
function handler(text, result) {
return text.replace(result, '---');
}
var text = 'better than fine';
helper.handTextManipulation(text, [p1, p2], handler, function (err, handledText) {
try {
expect(err).to.not.be.ok;
expect(handledText).to.be.eql('--- than ---');
} catch (e) {
return done(e);
}
done();
});
});
});
describe('createTag', function () {
it('should create a simple tag', function () {
expect(markersInstance.createTag('type', 'collection', 'name', 'attribute')).
to.be.equal('<!-- @@type__collection_name_attribute -->');
});
});
});