Allow Node tests to be asynchronous

This commit is contained in:
Scott Kyle 2016-04-26 00:10:21 -07:00
parent 723b50f649
commit b42f5ab285

View File

@ -50,28 +50,27 @@ function runTests() {
} }
}; };
for (let suiteName in testNames) { return Object.keys(testNames).reduce((suitePromiseChain, suiteName) => {
console.log('Starting ' + suiteName); return suitePromiseChain.then(() => {
console.log('Starting ' + suiteName);
for (let testName of testNames[suiteName]) { return testNames[suiteName].reduce((testPromiseChain, testName) => {
RealmTests.runTest(suiteName, 'beforeEach'); return testPromiseChain.then(() => {
return RealmTests.runTest(suiteName, 'beforeEach');
try { }).then(() => {
RealmTests.runTest(suiteName, testName); return RealmTests.runTest(suiteName, testName);
console.log('+ ' + testName); }).then(() => {
} console.log('+ ' + testName);
catch (e) { }, (err) => {
console.warn('- ' + testName); console.warn('- ' + testName);
console.error(e.message, e.stack); console.warn(err.message || err);
passed = false; passed = false;
} }).then(() => {
finally { return RealmTests.runTest(suiteName, 'afterEach');
RealmTests.runTest(suiteName, 'afterEach'); });
} }, Promise.resolve());
} });
} }, Promise.resolve()).then(() => passed);
return passed;
} }
if (require.main == module) { if (require.main == module) {
@ -79,7 +78,15 @@ if (require.main == module) {
mockery.warnOnUnregistered(false); mockery.warnOnUnregistered(false);
mockery.registerMock('realm', require('..')); mockery.registerMock('realm', require('..'));
if (!runTests()) { runTests().then(
process.exit(1); (passed) => {
} if (!passed) {
process.exit(1);
}
},
(err) => {
console.error(err);
process.exit(1);
}
);
} }