initial commit
This commit is contained in:
+107
@@ -0,0 +1,107 @@
|
||||
/*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
* DO NOT EDIT THIS FILE
|
||||
* For FCC testing purposes!
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
const analyser = require('./assertion-analyser');
|
||||
const EventEmitter = require('events').EventEmitter;
|
||||
|
||||
const Mocha = require('mocha'),
|
||||
fs = require('fs'),
|
||||
path = require('path');
|
||||
require("@babel/register");
|
||||
|
||||
const mocha = new Mocha({ timeout: 5000 });
|
||||
const testDir = './tests'
|
||||
|
||||
|
||||
// Add each .js file to the mocha instance
|
||||
fs.readdirSync(testDir).filter(function (file) {
|
||||
// Only keep the .js files
|
||||
return file.substr(-3) === '.js';
|
||||
|
||||
}).forEach(function (file) {
|
||||
mocha.addFile(
|
||||
path.join(testDir, file)
|
||||
);
|
||||
});
|
||||
|
||||
let emitter = new EventEmitter();
|
||||
emitter.run = function () {
|
||||
|
||||
let tests = [];
|
||||
let context = "";
|
||||
let separator = ' -> ';
|
||||
// Run the tests.
|
||||
try {
|
||||
let runner = mocha.ui('tdd').run()
|
||||
.on('test end', function (test) {
|
||||
// remove comments
|
||||
let body = test.body.replace(/\/\/.*\n|\/\*.*\*\//g, '');
|
||||
// collapse spaces
|
||||
body = body.replace(/\s+/g, ' ');
|
||||
let obj = {
|
||||
title: test.title,
|
||||
context: context.slice(0, -separator.length),
|
||||
state: test.state,
|
||||
// body: body,
|
||||
assertions: analyser(body)
|
||||
};
|
||||
tests.push(obj);
|
||||
})
|
||||
.on('end', function () {
|
||||
emitter.report = tests;
|
||||
emitter.emit('done', tests)
|
||||
})
|
||||
.on('suite', function (s) {
|
||||
context += (s.title + separator);
|
||||
|
||||
})
|
||||
.on('suite end', function (s) {
|
||||
context = context.slice(0, -(s.title.length + separator.length))
|
||||
})
|
||||
} catch (e) {
|
||||
throw (e);
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = emitter;
|
||||
|
||||
/*
|
||||
* Mocha.runner Events:
|
||||
* can be used to build a better custom report
|
||||
*
|
||||
* - `start` execution started
|
||||
* - `end` execution complete
|
||||
* - `suite` (suite) test suite execution started
|
||||
* - `suite end` (suite) all tests (and sub-suites) have finished
|
||||
* - `test` (test) test execution started
|
||||
* - `test end` (test) test completed
|
||||
* - `hook` (hook) hook execution started
|
||||
* - `hook end` (hook) hook complete
|
||||
* - `pass` (test) test passed
|
||||
* - `fail` (test, err) test failed
|
||||
* - `pending` (test) test pending
|
||||
*/
|
||||
Reference in New Issue
Block a user