Skip to content

Commit

Permalink
add vows tests. need to test errors still
Browse files Browse the repository at this point in the history
  • Loading branch information
Floby committed Aug 5, 2012
1 parent 976607e commit 088f48f
Show file tree
Hide file tree
Showing 2 changed files with 71 additions and 0 deletions.
58 changes: 58 additions & 0 deletions vows/composed-values.vow.js
@@ -0,0 +1,58 @@
#!/usr/bin/env node

var vows = require('vows');
var assert = require('assert');
var ParseStream = require('../lib/ParseStream');


var suite = vows.describe('Composed Values');

function assertSameParsed(value) {
function parseValue (value) {
return function() {
var parser = new ParseStream();
var cb = this.callback;
parser.on('end', function(object) {
cb(null, object);
});
parser.on('error', function(err) {
cb(err);
});
parser.end(value);
}
}
return {
topic: parseValue(value),
'it should be parsed correctly': function(parsed) {
parsed = JSON.stringify(parsed);
val = JSON.stringify(JSON.parse(value));
assert.equal(parsed, val,
'The parsed value is not equal to the given value '+parsed+' != '+val);
}
}
}

suite.addBatch({
"When parsing an array": {
"while empty": assertSameParsed('[]'),
"with one numeric entry": assertSameParsed('[4]'),
"with one numeric entry": assertSameParsed('[-0.9e4]'),
"with one string entry": assertSameParsed('["hey"]'),
"with one boolean entry": assertSameParsed('[true]'),
"with two boolean entries": assertSameParsed('[true, false]'),
"with two numeric entries": assertSameParsed('[-44.7, 9.0322]'),
"with two string entries": assertSameParsed('["Hello", "World"]'),
"with 5 mixed entries": assertSameParsed('["Hello", true, 9, false, null]'),
}
}).addBatch({
"When parsing an object": {
"while empty": assertSameParsed('{}'),
"with one numeric entry, at word key": assertSameParsed('{"hey": 8}'),
"with one numeric entry, at phrase key": assertSameParsed('{"hey hey my my": 8}'),
}
}).addBatch({
"When parsing nested objects,": {
"Array in object": assertSameParsed('{"array":[1,2,3]}'),
"Object in Array": assertSameParsed('[1, {"key":"value"}]'),
}
}).export(module);
13 changes: 13 additions & 0 deletions vows/single-value.vow.js
Expand Up @@ -45,6 +45,19 @@ suite.addBatch({
"exponential notation, negative exponent": assertSameParsed('4e-3'),
"exponential notation, negative exponent, negative value": assertSameParsed('-4e-3'),
"exponential notation, negative exponent, negative value, decimal part": assertSameParsed('-4.8e-3'),
},
"When parsing a boolean": {
"false": assertSameParsed('false'),
"true": assertSameParsed('true'),
},
"When parsing null": {
"null": assertSameParsed('null')
},
"When parsing a string": {
"Simple string": assertSameParsed('"hello world!"'),
"utf8 string": assertSameParsed('"안녕하세요"'),
"with escaped characters": assertSameParsed('"haha \\" hoho"'),
"with encoded characters": assertSameParsed('"\\u0CA0_\\u0ca0"'),
}
}).export(module);

0 comments on commit 088f48f

Please sign in to comment.