Extract mocha function into taskHelper

This commit is contained in:
Blade Barringer
2015-11-03 08:41:16 -06:00
parent 8c95de0835
commit b71f1f7862
2 changed files with 34 additions and 28 deletions

View File

@@ -1,13 +1,15 @@
import { pipe, awaitPort, kill } from './taskHelper';
import {
pipe,
awaitPort,
kill,
runIntegrationTestsWithMocha,
} from './taskHelper';
import { server as karma } from 'karma';
import mongoose from 'mongoose';
import { exec } from 'child_process';
import psTree from 'ps-tree';
import gulp from 'gulp';
import { sync as glob } from 'glob';
import Q from 'q';
import Mocha from 'mocha';
import { resolve } from 'path';
const TEST_SERVER_PORT = 3003
const TEST_DB = 'habitrpg_test'
@@ -294,34 +296,12 @@ gulp.task('test:e2e:safe', ['test:prepare', 'test:prepare:server'], (cb) => {
});
gulp.task('test:api-v2', ['test:prepare:server'], (done) => {
runIntegrationTestsWithMocha('./test/api/v2/**/*.js')
runIntegrationTestsWithMocha('./test/api/v2/**/*.js', TEST_SERVER_PORT, server)
});
function runIntegrationTestsWithMocha(files) {
require('../test/helpers/globals.helper');
awaitPort(TEST_SERVER_PORT).then(() => {
let mocha = new Mocha({reporter: 'spec'});
let tests = glob(files);
tests.forEach((test) => {
delete require.cache[resolve(test)];
mocha.addFile(test);
});
mocha.run((numberOfFailures) => {
if (!process.env.RUN_INTEGRATION_TEST_FOREVER) {
kill(server);
process.exit(numberOfFailures);
}
done();
});
});
}
gulp.task('test:api-v2:watch', ['test:prepare:server'], () => {
process.env.RUN_INTEGRATION_TEST_FOREVER = true;
gulp.watch(['website/src/**', 'test/api/**'], ['test:api']);
gulp.watch(['website/src/**', 'test/api/v2/**'], ['test:api']);
});
gulp.task('test:api-v2:safe', ['test:prepare:server'], (done) => {

View File

@@ -4,6 +4,9 @@ import nconf from 'nconf';
import net from 'net';
import Q from 'q';
import { post } from 'superagent';
import { sync as glob } from 'glob';
import Mocha from 'mocha';
import { resolve } from 'path';
/*
* Get access to configruable values
@@ -91,3 +94,26 @@ export function postToSlack(msg, config={}) {
if (err) console.error('Unable to post to slack', err);
});
}
export function runIntegrationTestsWithMocha(files, port, server) {
require('../test/helpers/globals.helper');
awaitPort(port).then(() => {
let mocha = new Mocha({reporter: 'spec'});
let tests = glob(files);
tests.forEach((test) => {
delete require.cache[resolve(test)];
mocha.addFile(test);
});
mocha.run((numberOfFailures) => {
if (!process.env.RUN_INTEGRATION_TEST_FOREVER) {
kill(server);
process.exit(numberOfFailures);
}
done();
});
});
}