src/lib/mocha/mocha-wrapper-spec.js
// const testDir = './tests/';
// const testDirFiles = ['fileA.js', 'fileB.js'];
// const filesGlobValue = './lib/**/*.spec.js';
// const filesGlobFiles = ['./lib/fileA.spec.js', './lib/someDir/fileB.spec.js'];
// const emptyTestsDirPath = '';
//
// describe('mocha-wrapper', function () {
// beforeEach(function () {
// td.replace('./mocha-fiberized-ui', {});
// td.replace('exit', td.function('exit'));
// td.replace('../babel-register', td.object({}));
// const emptyFn = () => {};
// this.mocha = td.replace('mocha');
// this.path = td.replace('path', td.object({ join: emptyFn, resolve: emptyFn }));
// this.glob = td.replace('glob', td.object({ sync: emptyFn }));
// process.env.mochaConfig = JSON.stringify({ tags: ''});
// process.argv = [];
// });
// afterEach(function() {
// td.reset();
// });
// describe('add files', function () {
// it('adds files inside testDir', function () {
// process.argv = [];
// process.env['chimp.path'] = testDir;
// // mock --path tests dir files
// td.when(this.path.join('mocha-helper.js')).thenReturn('mocha-helper.js');
// td.when(this.path.resolve(__dirname, 'mocha-helper.js')).thenReturn('mocha-helper.js');
// td.when(this.path.join(testDir, '**')).thenReturn(testDir);
// td.when(this.glob.sync(testDir)).thenReturn(testDirFiles);
// td.when(this.mocha.run(td.matchers.anything())).thenReturn(null);
//
// const MochaWrapper = require('./mocha-wrapper.js').MochaWrapper;
// const mochaWrapper = new MochaWrapper();
//
// td.verify(this.mocha.addFile('fileA.js'));
// td.verify(this.mocha.addFile('fileB.js'));
// td.verify(this.mocha.addFile('mocha-helper.js'));
// td.verify(this.mocha.addFile(), {times: 3, ignoreExtraArgs: true}); // verify only called three times
// });
// it('adds files specified by --files options when --path is empty dir', function() {
// process.argv = [];
// process.env['chimp.path'] = emptyTestsDirPath;
// process.env['chimp.files'] = filesGlobValue;
// // mock empty --path tests dir files
// td.when(this.path.join('mocha-helper.js')).thenReturn('mocha-helper.js');
// td.when(this.path.resolve(__dirname, 'mocha-helper.js')).thenReturn('mocha-helper.js');
// td.when(this.path.join(emptyTestsDirPath, '**')).thenReturn(emptyTestsDirPath);
// td.when(this.glob.sync(emptyTestsDirPath)).thenReturn([]);
// // mock --files flag files
// td.when(this.glob.sync(filesGlobValue)).thenReturn(filesGlobFiles);
//
// const MochaWrapper = require('./mocha-wrapper.js').MochaWrapper;
// const mochaWrapper = new MochaWrapper();
//
// td.verify(this.mocha.addFile('./lib/fileA.spec.js'));
// td.verify(this.mocha.addFile('./lib/someDir/fileB.spec.js'));
// td.verify(this.mocha.addFile('mocha-helper.js'));
// td.verify(this.mocha.addFile(), {times: 3, ignoreExtraArgs: true});
// });
// it('adds files specified by --files option and files in --path when both contain files', function() {
// process.argv = [];
// process.env['chimp.path'] = testDir;
// process.env['chimp.files'] = filesGlobValue;
// // mock mocha-helper
// td.when(this.path.join('mocha-helper.js')).thenReturn('mocha-helper.js');
// td.when(this.path.resolve(__dirname, 'mocha-helper.js')).thenReturn('mocha-helper.js');
// // mock --files flag files
// td.when(this.glob.sync(filesGlobValue)).thenReturn(filesGlobFiles);
// // mock --path test dir files
// td.when(this.path.join(testDir, '**')).thenReturn(testDir);
// td.when(this.glob.sync(testDir)).thenReturn(testDirFiles);
// td.when(this.mocha.run(td.matchers.anything())).thenReturn(null);
//
// const MochaWrapper = require('./mocha-wrapper.js').MochaWrapper;
// const mochaWrapper = new MochaWrapper();
//
// td.verify(this.mocha.addFile('fileA.js'));
// td.verify(this.mocha.addFile('fileB.js'));
// td.verify(this.mocha.addFile('./lib/fileA.spec.js'));
// td.verify(this.mocha.addFile('./lib/someDir/fileB.spec.js'));
// td.verify(this.mocha.addFile('mocha-helper.js'));
// td.verify(this.mocha.addFile(), {times: 5, ignoreExtraArgs: true});
// });
// it('adds files specified on cli directly', function() {
// process.argv = ['/usr/local/bin/node', 'chimp', '--mocha', 'test/fileA.js', 'test/fileB.js', 'test/fileC.js', 'fileD.js'];
// // mock mocha-helper
// td.when(this.path.join('mocha-helper.js')).thenReturn('mocha-helper.js');
// td.when(this.path.resolve(__dirname, 'mocha-helper.js')).thenReturn('mocha-helper.js');
//
// const MochaWrapper = require('./mocha-wrapper.js').MochaWrapper;
// const mochaWrapper = new MochaWrapper();
// td.verify(this.mocha.addFile('test/fileA.js'));
// td.verify(this.mocha.addFile('test/fileB.js'));
// td.verify(this.mocha.addFile('test/fileC.js'));
// td.verify(this.mocha.addFile('fileD.js'));
// td.verify(this.mocha.addFile('mocha-helper.js'));
// td.verify(this.mocha.addFile(), {times: 5, ignoreExtraArgs: true});
//
// });
// });
// });