Tried adding mocha
This commit is contained in:
parent
6feb3fbde8
commit
fdf73a4b68
6 changed files with 65 additions and 12 deletions
5
.babelrc
Normal file
5
.babelrc
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"presets": [
|
||||||
|
"es2015"
|
||||||
|
]
|
||||||
|
}
|
15
jest-config.json
Normal file
15
jest-config.json
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
"scriptPreprocessor": "<rootDir>/node_modules/babel-jest/",
|
||||||
|
"testFileExtensions": ["es6", "js"],
|
||||||
|
"moduleFileExtensions": ["js", "json", "es6"],
|
||||||
|
"collectCoverage": true,
|
||||||
|
"testPathDirs": [
|
||||||
|
"<rootDir>/src/__tests__/"
|
||||||
|
],
|
||||||
|
"testPathIgnorePatterns": [
|
||||||
|
"<rootDir>/src/__tests__/__mocks__/"
|
||||||
|
],
|
||||||
|
"modulePathIgnorePatterns": [
|
||||||
|
"<rootDir>/node_modules/"
|
||||||
|
]
|
||||||
|
}
|
13
package.json
13
package.json
|
@ -7,7 +7,8 @@
|
||||||
"test": "jest && npm run lint",
|
"test": "jest && npm run lint",
|
||||||
"lint": "eslint -c node_modules/eslint-config/.eslintrc 'src'",
|
"lint": "eslint -c node_modules/eslint-config/.eslintrc 'src'",
|
||||||
"create-build-dirs": "mkdir -p build",
|
"create-build-dirs": "mkdir -p build",
|
||||||
"build-js": "browserify -t [ babelify --presets [ es2015 ] ] src/app.js -o build/app.js"
|
"build-js": "browserify -t [ babelify --presets [ es2015 ] ] src/app.js -o build/app.js",
|
||||||
|
"mocha": "./node_modules/mocha/bin/mocha --compilers js:babel-core/register --require test-helper.js --bail --recursive 'src/__tests__/*.js'"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
@ -27,7 +28,15 @@
|
||||||
"eslint-config": "git://github.com/dabapps/eslint-config.git",
|
"eslint-config": "git://github.com/dabapps/eslint-config.git",
|
||||||
"eslint-plugin-react": "^3.11.3",
|
"eslint-plugin-react": "^3.11.3",
|
||||||
"jest-cli": "^0.8.1",
|
"jest-cli": "^0.8.1",
|
||||||
"uglify-js": "=2.6.1"
|
"uglify-js": "=2.6.1",
|
||||||
|
"babel-cli": "=6.2.0",
|
||||||
|
"babel-core": "=6.2.1",
|
||||||
|
"chai": "=3.4.1",
|
||||||
|
"istanbul": "=1.0.0-alpha.2",
|
||||||
|
"jsdom": "=7.1.0",
|
||||||
|
"mocha": "=2.3.4",
|
||||||
|
"sinon": "=1.17.2",
|
||||||
|
"sinon-chai": "=2.8.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"superagent": "=1.5.0"
|
"superagent": "=1.5.0"
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
/*global describe, it, expect, beforeEach */
|
/*global describe, it, beforeEach */
|
||||||
|
import { expect } from 'chai';
|
||||||
|
|
||||||
describe('Reverser', function () {
|
describe('Reverser', function () {
|
||||||
|
|
||||||
|
@ -9,6 +10,6 @@ describe('Reverser', function () {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should exist', function () {
|
it('should exist', function () {
|
||||||
expect(apiRequests).toBeTruthy();
|
expect(apiRequests).to.be.truethy;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,26 +1,28 @@
|
||||||
/*global jest, describe, it, expect, beforeEach, spyOn */
|
/*global describe, it, beforeEach */
|
||||||
|
import { expect } from 'chai';
|
||||||
|
import { spy, stub } from 'sinon';
|
||||||
|
|
||||||
jest.dontMock('./../app');
|
var superagent = require('superagent');
|
||||||
jest.dontMock('./../api-requests');
|
var superagentStub = require('./__mocks__/superagent');
|
||||||
|
|
||||||
|
stub(superagent, superagentStub);
|
||||||
|
|
||||||
describe('Reverser', function () {
|
describe('Reverser', function () {
|
||||||
|
|
||||||
var superagent, Reverse, apiRequests;
|
var Reverse, apiRequests;
|
||||||
|
|
||||||
beforeEach(function () {
|
beforeEach(function () {
|
||||||
Reverse = require('./../app');
|
Reverse = require('./../app');
|
||||||
apiRequests = require('./../api-requests');
|
apiRequests = require('./../api-requests');
|
||||||
superagent = require('superagent');
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should get results', function () {
|
it('should get results', function () {
|
||||||
var data = 'thing:thing';
|
var data = 'thing:thing';
|
||||||
superagent.__setResponse({status: 200, ok: 'ok', body: data});
|
superagent.__setResponse({status: 200, ok: 'ok', body: data});
|
||||||
spyOn(apiRequests, 'post').andCallThrough();
|
spy(apiRequests, 'post');
|
||||||
|
|
||||||
Reverse(data);
|
Reverse(data);
|
||||||
jest.runAllTimers();
|
|
||||||
|
|
||||||
expect(apiRequests.post).toHaveBeenCalledWith('/reverse/');
|
expect(apiRequests.post).to.have.been.calledWith('/reverse/');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
21
test-helper.js
Normal file
21
test-helper.js
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
import jsdom from 'jsdom';
|
||||||
|
import chai from 'chai';
|
||||||
|
import sinonChai from 'sinon-chai';
|
||||||
|
|
||||||
|
// Jsdom document & window
|
||||||
|
const doc = jsdom.jsdom('<!doctype html><html><body></body></html>');
|
||||||
|
const win = doc.defaultView;
|
||||||
|
|
||||||
|
// Add to global
|
||||||
|
global.document = doc;
|
||||||
|
global.window = win;
|
||||||
|
|
||||||
|
// Add window keys to global window
|
||||||
|
Object.keys(window).forEach((key) => {
|
||||||
|
if (!(key in global)) {
|
||||||
|
global[key] = window[key];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
chai.expect();
|
||||||
|
chai.use(sinonChai);
|
Reference in a new issue