Open
Description
Hi,
I'm writing server-side tests by calling
server.execute(function(){
var a = doSomething();
expect(a).to.exist;
var b = doSomethingWithA(a);
expect(b).to.exist;
});
Guess what ? I get an AssertionError "expected undefined should exist"
What's the culprit: var a=
or var b=
?
No way to tell.
So I've dug in the gagarin codebase and added
chai.Assertion.includeStack = true;
at backdoor.js:15
and
console.log("COMPILED", code);
to the compile() function also in backdoor.js.
Now I get:
server COMPILED function (chai, Fiber, expect, assert, either) {
server return function () {
server 'use strict';
server return (function (userFunc, getClosure, action) {
server try {
server console.log(action);
server return action(userFunc, getClosure);
server } catch (err) {
server console.error('ERR', err);
server return { error: err.message, stack: err.stack, closure: getClosure() };
server }
server })(
server function () {
server var a = doSomething();
server expect(a).to.exist;
server var b = doSomethingWithA(a);
server expect(b).to.exist; },
server function () {
server return { };
server },
server arguments[arguments.length-1]
server );
server }
server }
and
AssertionError: expected undefined to exist\n at [object Object].<anonymous> (...chai/core/assertions.js:340:10)\n at [object Object].Object.defineProperty.get (..chai/utils/addProperty.js:35:29)\n at Object.<anonymous> (evalmachine.<anonymous>:15:32)\n at packages/anti_gagarin/meteor/backdoor.js:44:1\n at userId (evalmachine.<anonymous>:7:16)\n at Object.<anonymous> (evalmachine.<anonymous>:12:7)\n at [object Object].Meteor.methods./gagarin/execute (packages/anti_gagarin/meteor/backdoor.js:42:1)\n at [object Object].methodMap.(anonymous function) (packages/meteorhacks_kadira/lib/hijack/wrap_session.js:164:1)\n at maybeAuditArgumentChecks (livedata_server.js:1698:12)\n at livedata_server.js:708:19
So I can count lines and deduce that the line in error is var b=
.
How can I automate this?