diff --git a/tasks/gulp-tests.js b/tasks/gulp-tests.js index 530f519a59..d0f6fcfcc8 100644 --- a/tasks/gulp-tests.js +++ b/tasks/gulp-tests.js @@ -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) => { diff --git a/tasks/taskHelper.js b/tasks/taskHelper.js index a303421d0f..de87fa5105 100644 --- a/tasks/taskHelper.js +++ b/tasks/taskHelper.js @@ -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(); + }); + }); +} +