diff --git a/packages/test-in-phantom/driver.js b/packages/test-in-phantom/driver.js index c84b16c6d7..ecdbdf1b02 100644 --- a/packages/test-in-phantom/driver.js +++ b/packages/test-in-phantom/driver.js @@ -1,7 +1,5 @@ DONE = false; -(function () { - var getName = function (result) { return (result.server ? "S: " : "C: ") + result.groupPath.join(" - ") + " - " + result.test; @@ -16,22 +14,15 @@ var expected = 0; var resultSet = {}; var toReport = []; -var url = null; -if (Meteor.settings && - Meteor.settings.public && - !_.isEmpty(Meteor.settings.public.runId) && - !_.isEmpty(Meteor.settings.public.reportTo)) { - url = Meteor.settings.public.reportTo + - "/report/" + - Meteor.settings.public.runId; -} - var hrefPath = document.location.href.split("/"); var platform = hrefPath.length && hrefPath[hrefPath.length - 1]; if (_.isEmpty(platform)) platform = "local"; +var doReport = Meteor && + Meteor.settings.public && + Meteor.settings.public.runId; var report = function (name, last) { - if (url && url !== "") { + if (doReport) { var data = { run_id: Meteor.settings.public.runId, testPath: resultSet[name].testPath, @@ -57,83 +48,81 @@ var sendReports = function (callback) { if (!callback) callback = function () {}; toReport = []; - if (url) - Meteor.call("report", url, reports, callback); + if (doReport) + Meteor.call("report", reports, callback); else callback(); }; Meteor.startup(function () { -setTimeout(sendReports, 500); -setInterval(sendReports, 2000); + setTimeout(sendReports, 500); + setInterval(sendReports, 2000); -Meteor._runTestsEverywhere( - function (results) { - var name = getName(results); - if (!_.has(resultSet, name)) { - var testPath = EJSON.clone(results.groupPath); - testPath.push(results.test); - resultSet[name] = { - name: name, - status: "PENDING", - events: [], - server: !!results.server, - testPath: testPath - }; - report(name, false); - } - _.each(results.events, function (event) { - resultSet[name].events.push(event); - switch (event.type) { - case "ok": - break; - case "expected_fail": - if (resultSet[name].status !== "FAIL") - resultSet[name].status = "EXPECTED"; - break; - case "finish": - switch (resultSet[name].status) { - case "OK": + Meteor._runTestsEverywhere( + function (results) { + var name = getName(results); + if (!_.has(resultSet, name)) { + var testPath = EJSON.clone(results.groupPath); + testPath.push(results.test); + resultSet[name] = { + name: name, + status: "PENDING", + events: [], + server: !!results.server, + testPath: testPath + }; + report(name, false); + } + _.each(results.events, function (event) { + resultSet[name].events.push(event); + switch (event.type) { + case "ok": break; - case "PENDING": - resultSet[name].status = "OK"; - report(name, true); - console.log(name, ":", "OK"); - passed++; + case "expected_fail": + if (resultSet[name].status !== "FAIL") + resultSet[name].status = "EXPECTED"; break; - case "EXPECTED": - report(name, true); - console.log(name, ":", "EXPECTED FAILURE"); - expected++; - break; - case "FAIL": - failed++; - report(name, true); - console.log(name, ":", "!!!!!!!!! FAIL !!!!!!!!!!!"); - console.log(JSON.stringify(resultSet[name].info)); + case "finish": + switch (resultSet[name].status) { + case "OK": + break; + case "PENDING": + resultSet[name].status = "OK"; + report(name, true); + console.log(name, ":", "OK"); + passed++; + break; + case "EXPECTED": + report(name, true); + console.log(name, ":", "EXPECTED FAILURE"); + expected++; + break; + case "FAIL": + failed++; + report(name, true); + console.log(name, ":", "!!!!!!!!! FAIL !!!!!!!!!!!"); + console.log(JSON.stringify(resultSet[name].info)); + break; + default: + console.log(name, ": unknown state for the test to be in"); + } + finished++; break; default: - console.log(name, ": unknown state for the test to be in"); + resultSet[name].status = "FAIL"; + resultSet[name].info = results; + break; } - finished++; - break; - default: - resultSet[name].status = "FAIL"; - resultSet[name].info = results; - break; - } - }); - }, + }); + }, - function () { - console.log("passed/expected/failed/total", passed, "/", expected, "/", failed, "/", _.size(resultSet)); - sendReports(function () { - console.log("Waiting 3s for any last reports to get sent out"); - setTimeout(function () { - DONE = true; - }, 3000); - }); - }, - ["tinytest"]); + function () { + console.log("passed/expected/failed/total", passed, "/", expected, "/", failed, "/", _.size(resultSet)); + sendReports(function () { + console.log("Waiting 3s for any last reports to get sent out"); + setTimeout(function () { + DONE = true; + }, 3000); + }); + }, + ["tinytest"]); }); - -})(); diff --git a/packages/test-in-phantom/reporter.js b/packages/test-in-phantom/reporter.js index 2242ea23ab..b0f02a3c34 100644 --- a/packages/test-in-phantom/reporter.js +++ b/packages/test-in-phantom/reporter.js @@ -1,5 +1,15 @@ +var url = null; +if (Meteor.settings && + Meteor.settings.public && + !_.isEmpty(Meteor.settings.public.runId) && + !_.isEmpty(Meteor.settings.public.reportTo)) { + url = Meteor.settings.public.reportTo + + "/report/" + + Meteor.settings.public.runId; +} + Meteor.methods({ - report: function (url, reports) { + report: function (reports) { Meteor.http.post(url, { data: reports }); diff --git a/packages/test-in-phantom/run.sh b/packages/test-in-phantom/run.sh index b7a3dc4db2..9d3f79f307 100755 --- a/packages/test-in-phantom/run.sh +++ b/packages/test-in-phantom/run.sh @@ -1,5 +1,9 @@ #!/bin/bash +cd `dirname $0` +cd ../.. +export METEOR_HOME=`pwd` + #eventually this should be the new engine way to run tests cd $METEOR_HOME/packages