Use shouldThrow helper for test asserts
This commit is contained in:
+5
-4
@@ -1,3 +1,4 @@
|
|||||||
|
/*global CompilerContext, Handlebars, beforeEach, shouldCompileTo */
|
||||||
global.handlebarsEnv = null;
|
global.handlebarsEnv = null;
|
||||||
|
|
||||||
beforeEach(function() {
|
beforeEach(function() {
|
||||||
@@ -160,9 +161,9 @@ describe("basic context", function() {
|
|||||||
|
|
||||||
it("this keyword nested inside path", function() {
|
it("this keyword nested inside path", function() {
|
||||||
var string = "{{#hellos}}{{text/this/foo}}{{/hellos}}";
|
var string = "{{#hellos}}{{text/this/foo}}{{/hellos}}";
|
||||||
(function() {
|
shouldThrow(function() {
|
||||||
CompilerContext.compile(string);
|
CompilerContext.compile(string);
|
||||||
}).should.throw(Error);
|
}, Error);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("this keyword in helpers", function() {
|
it("this keyword in helpers", function() {
|
||||||
@@ -181,8 +182,8 @@ describe("basic context", function() {
|
|||||||
|
|
||||||
it("this keyword nested inside helpers param", function() {
|
it("this keyword nested inside helpers param", function() {
|
||||||
var string = "{{#hellos}}{{foo text/this/foo}}{{/hellos}}";
|
var string = "{{#hellos}}{{foo text/this/foo}}{{/hellos}}";
|
||||||
(function() {
|
shouldThrow(function() {
|
||||||
CompilerContext.compile(string);
|
CompilerContext.compile(string);
|
||||||
}).should.throw(Error);
|
}, Error);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
+2
-2
@@ -42,9 +42,9 @@ describe('blocks', function() {
|
|||||||
it("block with complex lookup using nested context", function() {
|
it("block with complex lookup using nested context", function() {
|
||||||
var string = "{{#goodbyes}}{{text}} cruel {{foo/../name}}! {{/goodbyes}}";
|
var string = "{{#goodbyes}}{{text}} cruel {{foo/../name}}! {{/goodbyes}}";
|
||||||
|
|
||||||
(function() {
|
shouldThrow(function() {
|
||||||
CompilerContext.compile(string);
|
CompilerContext.compile(string);
|
||||||
}).should.throw(Error);
|
}, Error);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("block with deep nested complex lookup", function() {
|
it("block with deep nested complex lookup", function() {
|
||||||
|
|||||||
+7
-7
@@ -1,4 +1,4 @@
|
|||||||
/*global CompilerContext */
|
/*global CompilerContext, Handlebars, handlebarsEnv, shouldThrow */
|
||||||
describe('data', function() {
|
describe('data', function() {
|
||||||
it("passing in data to a compiled function that expects data - works with helpers", function() {
|
it("passing in data to a compiled function that expects data - works with helpers", function() {
|
||||||
var template = CompilerContext.compile("{{hello}}", {data: true});
|
var template = CompilerContext.compile("{{hello}}", {data: true});
|
||||||
@@ -88,25 +88,25 @@ describe('data', function() {
|
|||||||
it("parameter data throws when using this scope references", function() {
|
it("parameter data throws when using this scope references", function() {
|
||||||
var string = "{{#goodbyes}}{{text}} cruel {{@./name}}! {{/goodbyes}}";
|
var string = "{{#goodbyes}}{{text}} cruel {{@./name}}! {{/goodbyes}}";
|
||||||
|
|
||||||
(function() {
|
shouldThrow(function() {
|
||||||
CompilerContext.compile(string);
|
CompilerContext.compile(string);
|
||||||
}).should.throw(Error);
|
}, Error);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("parameter data throws when using parent scope references", function() {
|
it("parameter data throws when using parent scope references", function() {
|
||||||
var string = "{{#goodbyes}}{{text}} cruel {{@../name}}! {{/goodbyes}}";
|
var string = "{{#goodbyes}}{{text}} cruel {{@../name}}! {{/goodbyes}}";
|
||||||
|
|
||||||
(function() {
|
shouldThrow(function() {
|
||||||
CompilerContext.compile(string);
|
CompilerContext.compile(string);
|
||||||
}).should.throw(Error);
|
}, Error);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("parameter data throws when using complex scope references", function() {
|
it("parameter data throws when using complex scope references", function() {
|
||||||
var string = "{{#goodbyes}}{{text}} cruel {{@foo/../name}}! {{/goodbyes}}";
|
var string = "{{#goodbyes}}{{text}} cruel {{@foo/../name}}! {{/goodbyes}}";
|
||||||
|
|
||||||
(function() {
|
shouldThrow(function() {
|
||||||
CompilerContext.compile(string);
|
CompilerContext.compile(string);
|
||||||
}).should.throw(Error);
|
}, Error);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("data is inherited downstream", function() {
|
it("data is inherited downstream", function() {
|
||||||
|
|||||||
Vendored
+18
@@ -26,3 +26,21 @@ global.compileWithPartials = function(string, hashOrArray, partials) {
|
|||||||
global.equals = global.equal = function(a, b, msg) {
|
global.equals = global.equal = function(a, b, msg) {
|
||||||
a.should.equal(b, msg || '');
|
a.should.equal(b, msg || '');
|
||||||
};
|
};
|
||||||
|
|
||||||
|
global.shouldThrow = function(callback, type, msg) {
|
||||||
|
var failed;
|
||||||
|
try {
|
||||||
|
callback();
|
||||||
|
failed = true;
|
||||||
|
} catch (err) {
|
||||||
|
if (type && !(err instanceof type)) {
|
||||||
|
throw new Error('Type failure');
|
||||||
|
}
|
||||||
|
if (msg && !(msg.test ? msg.test(err.message) : msg === err.message)) {
|
||||||
|
throw new Error('Message failure');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (failed) {
|
||||||
|
throw new Error('It failed to throw');
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|||||||
+10
-10
@@ -1,4 +1,4 @@
|
|||||||
/*global CompilerContext, shouldCompileTo, shouldCompileToWithPartials */
|
/*global CompilerContext, Handlebars, shouldCompileTo, shouldCompileToWithPartials, shouldThrow, handlebarsEnv */
|
||||||
describe('helpers', function() {
|
describe('helpers', function() {
|
||||||
it("helper with complex lookup$", function() {
|
it("helper with complex lookup$", function() {
|
||||||
var string = "{{#goodbyes}}{{{link ../prefix}}}{{/goodbyes}}";
|
var string = "{{#goodbyes}}{{{link ../prefix}}}{{/goodbyes}}";
|
||||||
@@ -212,10 +212,10 @@ describe('helpers', function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("using a quote in the middle of a parameter raises an error", function() {
|
it("using a quote in the middle of a parameter raises an error", function() {
|
||||||
(function() {
|
var string = 'Message: {{hello wo"rld"}}';
|
||||||
var string = 'Message: {{hello wo"rld"}}';
|
shouldThrow(function() {
|
||||||
CompilerContext.compile(string);
|
CompilerContext.compile(string);
|
||||||
}).should.throw(Error);
|
}, Error);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("escaping a String is possible", function(){
|
it("escaping a String is possible", function(){
|
||||||
@@ -351,10 +351,10 @@ describe('helpers', function() {
|
|||||||
|
|
||||||
describe("helperMissing", function() {
|
describe("helperMissing", function() {
|
||||||
it("if a context is not found, helperMissing is used", function() {
|
it("if a context is not found, helperMissing is used", function() {
|
||||||
(function() {
|
shouldThrow(function() {
|
||||||
var template = CompilerContext.compile("{{hello}} {{link_to world}}");
|
var template = CompilerContext.compile("{{hello}} {{link_to world}}");
|
||||||
template({});
|
template({});
|
||||||
}).should.throw(/Missing helper: 'link_to'/);
|
}, undefined, /Missing helper: 'link_to'/);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("if a context is not found, custom helperMissing is used", function() {
|
it("if a context is not found, custom helperMissing is used", function() {
|
||||||
@@ -417,9 +417,9 @@ describe('helpers', function() {
|
|||||||
equal(result, "bar", "'bar' should === '" + result);
|
equal(result, "bar", "'bar' should === '" + result);
|
||||||
});
|
});
|
||||||
it("Unknown helper call in knownHelpers only mode should throw", function() {
|
it("Unknown helper call in knownHelpers only mode should throw", function() {
|
||||||
(function() {
|
shouldThrow(function() {
|
||||||
CompilerContext.compile("{{typeof hello}}", {knownHelpersOnly: true});
|
CompilerContext.compile("{{typeof hello}}", {knownHelpersOnly: true});
|
||||||
}).should.throw(Error);
|
}, Error);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -491,7 +491,7 @@ describe('helpers', function() {
|
|||||||
|
|
||||||
cruel: function(world) {
|
cruel: function(world) {
|
||||||
return "cruel " + world.toUpperCase();
|
return "cruel " + world.toUpperCase();
|
||||||
},
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
var context = {
|
var context = {
|
||||||
@@ -513,7 +513,7 @@ describe('helpers', function() {
|
|||||||
|
|
||||||
cruel: function(world) {
|
cruel: function(world) {
|
||||||
return "cruel " + world.toUpperCase();
|
return "cruel " + world.toUpperCase();
|
||||||
},
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
var context = {
|
var context = {
|
||||||
|
|||||||
+4
-4
@@ -32,17 +32,17 @@ describe('partials', function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("rendering undefined partial throws an exception", function() {
|
it("rendering undefined partial throws an exception", function() {
|
||||||
(function() {
|
shouldThrow(function() {
|
||||||
var template = CompilerContext.compile("{{> whatever}}");
|
var template = CompilerContext.compile("{{> whatever}}");
|
||||||
template();
|
template();
|
||||||
}).should.throw(Handlebars.Exception, 'The partial whatever could not be found');
|
}, Handlebars.Exception, 'The partial whatever could not be found');
|
||||||
});
|
});
|
||||||
|
|
||||||
it("rendering template partial in vm mode throws an exception", function() {
|
it("rendering template partial in vm mode throws an exception", function() {
|
||||||
(function() {
|
shouldThrow(function() {
|
||||||
var template = CompilerContext.compile("{{> whatever}}");
|
var template = CompilerContext.compile("{{> whatever}}");
|
||||||
template();
|
template();
|
||||||
}).should.throw(Handlebars.Exception, 'The partial whatever could not be found');
|
}, Handlebars.Exception, 'The partial whatever could not be found');
|
||||||
});
|
});
|
||||||
|
|
||||||
it("rendering function partial in vm mode", function() {
|
it("rendering function partial in vm mode", function() {
|
||||||
|
|||||||
+7
-7
@@ -1,4 +1,4 @@
|
|||||||
/*global CompilerContext, shouldCompileTo */
|
/*global CompilerContext, Handlebars, shouldCompileTo, shouldThrow */
|
||||||
describe('Regressions', function() {
|
describe('Regressions', function() {
|
||||||
it("GH-94: Cannot read property of undefined", function() {
|
it("GH-94: Cannot read property of undefined", function() {
|
||||||
var data = {"books":[{"title":"The origin of species","author":{"name":"Charles Darwin"}},{"title":"Lazarillo de Tormes"}]};
|
var data = {"books":[{"title":"The origin of species","author":{"name":"Charles Darwin"}},{"title":"Lazarillo de Tormes"}]};
|
||||||
@@ -85,12 +85,12 @@ describe('Regressions', function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('GH-437: Matching escaping', function() {
|
it('GH-437: Matching escaping', function() {
|
||||||
(function() {
|
shouldThrow(function() {
|
||||||
CompilerContext.compile('{{{a}}');
|
CompilerContext.compile('{{{a}}');
|
||||||
}).should.throw(Error);
|
}, Error);
|
||||||
(function() {
|
shouldThrow(function() {
|
||||||
CompilerContext.compile('{{a}}}');
|
CompilerContext.compile('{{a}}}');
|
||||||
}).should.throw(Error);
|
}, Error);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("Mustache man page", function() {
|
it("Mustache man page", function() {
|
||||||
@@ -106,9 +106,9 @@ describe('Regressions', function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("Passing falsy values to Handlebars.compile throws an error", function() {
|
it("Passing falsy values to Handlebars.compile throws an error", function() {
|
||||||
(function() {
|
shouldThrow(function() {
|
||||||
CompilerContext.compile(null);
|
CompilerContext.compile(null);
|
||||||
}).should.throw("You must pass a string or Handlebars AST to Handlebars.precompile. You passed null");
|
}, Error, 'You must pass a string or Handlebars AST to Handlebars.precompile. You passed null');
|
||||||
});
|
});
|
||||||
|
|
||||||
if (Handlebars.AST) {
|
if (Handlebars.AST) {
|
||||||
|
|||||||
Reference in New Issue
Block a user