add more tests

This commit is contained in:
nightwing 2013-04-18 18:07:14 +04:00
commit c6e4e4fa1d

View file

@ -38,9 +38,14 @@ define(function(require, exports, module) {
var assert = require("../../test/assertions"); var assert = require("../../test/assertions");
var coffee = require("../coffee/coffee-script"); var coffee = require("../coffee/coffee-script");
function assertLocation(e, sl, sc, el, ec) {
assert.equal(e.location.first_line, sl);
assert.equal(e.location.first_column, sc);
assert.equal(e.location.last_line, el);
assert.equal(e.location.last_column, ec);
}
module.exports = { module.exports = {
"test parse valid coffee script": function() { "test parse valid coffee script": function() {
coffee.parse("square = (x) -> x * x"); coffee.parse("square = (x) -> x * x");
}, },
@ -50,10 +55,24 @@ module.exports = {
coffee.parse("a = 12 f"); coffee.parse("a = 12 f");
} catch (e) { } catch (e) {
assert.equal(e.message, "Unexpected 'IDENTIFIER'"); assert.equal(e.message, "Unexpected 'IDENTIFIER'");
assert.equal(e.location.first_line, 0); assertLocation(e, 0, 4, 0, 5);
assert.equal(e.location.first_column, 7); }
assert.equal(e.location.last_line, 0); },
assert.equal(e.location.last_column, 7);
"test parse missing bracket": function() {
try {
coffee.parse("a = 12 f {\n\n");
} catch (e) {
assert.equal(e.message, "missing }");
assertLocation(e, 0, 10, 0, 10);
}
},
"test unexpected indent": function() {
try {
coffee.parse("a\n a\n");
} catch (e) {
assert.equal(e.message, "Unexpected 'INDENT'");
assertLocation(e, 0, 0, 0, 0);
} }
} }
}; };