Added basic UNTESTED tests
This commit is contained in:
parent
9625876e2a
commit
75891079b5
4 changed files with 132 additions and 1 deletions
|
@ -4,7 +4,7 @@
|
||||||
"description": "Client side helper for Django-Client-Reverse",
|
"description": "Client side helper for Django-Client-Reverse",
|
||||||
"main": "src/app.js",
|
"main": "src/app.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "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"
|
||||||
|
|
91
src/__tests__/__mocks__/superagent.js
Normal file
91
src/__tests__/__mocks__/superagent.js
Normal file
|
@ -0,0 +1,91 @@
|
||||||
|
/* global jest */
|
||||||
|
|
||||||
|
var superagent = jest.genMockFromModule('superagent');
|
||||||
|
|
||||||
|
var MockResponse = jest.genMockFunction().mockImplementation(function () {
|
||||||
|
this.status = 200;
|
||||||
|
this.ok = true;
|
||||||
|
});
|
||||||
|
|
||||||
|
MockResponse.prototype.send = jest.genMockFunction();
|
||||||
|
MockResponse.prototype.toError = jest.genMockFunction();
|
||||||
|
|
||||||
|
var MockRequest = jest.genMockFunction().mockImplementation(function (method, url) {
|
||||||
|
this.method = method;
|
||||||
|
this.url = url;
|
||||||
|
});
|
||||||
|
|
||||||
|
MockRequest.prototype.accept = jest.genMockFunction().mockReturnThis();
|
||||||
|
MockRequest.prototype.set = jest.genMockFunction().mockReturnThis();
|
||||||
|
MockRequest.prototype.send = jest.genMockFunction().mockReturnThis();
|
||||||
|
MockRequest.prototype.field = jest.genMockFunction().mockReturnThis();
|
||||||
|
MockRequest.prototype.query = jest.genMockFunction().mockReturnThis();
|
||||||
|
MockRequest.prototype.end = jest.genMockFunction().mockImplementation(function (callback) {
|
||||||
|
|
||||||
|
if (superagent.mockDelay) {
|
||||||
|
this.delayTimer = setTimeout(callback, 0, superagent.mockError, superagent.mockResponse);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
callback(superagent.mockError, superagent.mockResponse);
|
||||||
|
});
|
||||||
|
|
||||||
|
MockRequest.prototype.abort = jest.genMockFunction().mockImplementation(function () {
|
||||||
|
this.aborted = true;
|
||||||
|
|
||||||
|
if (this.delayTimer) {
|
||||||
|
clearTimeout(this.delayTimer);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
superagent.Request = MockRequest;
|
||||||
|
superagent.Response = MockResponse;
|
||||||
|
|
||||||
|
superagent.mockResponse = new MockResponse();
|
||||||
|
superagent.mockError = null;
|
||||||
|
superagent.mockDelay = false;
|
||||||
|
|
||||||
|
function __setResponse (options) {
|
||||||
|
var status = typeof options.status !== 'undefined' ? options.status : 200;
|
||||||
|
var ok = typeof options.ok !== 'undefined' ? options.ok : true;
|
||||||
|
var body = typeof options.body !== 'undefined' ? options.body : {};
|
||||||
|
var error = typeof options.error !== 'undefined' ? options.error : {};
|
||||||
|
|
||||||
|
var mockedResponse = jest.genMockFunction().mockImplementation(function () {
|
||||||
|
this.status = status;
|
||||||
|
this.ok = ok;
|
||||||
|
this.body = body;
|
||||||
|
});
|
||||||
|
|
||||||
|
superagent.mockError = {
|
||||||
|
response: {
|
||||||
|
body: error
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
superagent.mockResponse = new mockedResponse();
|
||||||
|
}
|
||||||
|
|
||||||
|
//module.exports = superagent;
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
Response: MockResponse,
|
||||||
|
Request: MockRequest,
|
||||||
|
_requests: [],
|
||||||
|
_newRequest: function () {
|
||||||
|
var r = new MockRequest();
|
||||||
|
this._requests.push(r);
|
||||||
|
return r;
|
||||||
|
},
|
||||||
|
post: function () {
|
||||||
|
return this._newRequest();
|
||||||
|
},
|
||||||
|
get: function () {
|
||||||
|
return this._newRequest();
|
||||||
|
},
|
||||||
|
put: function () {
|
||||||
|
return this._newRequest();
|
||||||
|
},
|
||||||
|
__setResponse: __setResponse
|
||||||
|
};
|
14
src/__tests__/api-requests.js
Normal file
14
src/__tests__/api-requests.js
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
/*global describe, it, expect, beforeEach */
|
||||||
|
|
||||||
|
describe('Reverser', function () {
|
||||||
|
|
||||||
|
var apiRequests;
|
||||||
|
|
||||||
|
beforeEach(function () {
|
||||||
|
apiRequests = require('./../api-requests');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should exist', function () {
|
||||||
|
expect(apiRequests).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
26
src/__tests__/app.js
Normal file
26
src/__tests__/app.js
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
/*global jest, describe, it, expect, beforeEach, spyOn */
|
||||||
|
|
||||||
|
jest.dontMock('./../app');
|
||||||
|
jest.dontMock('./../api-requests');
|
||||||
|
|
||||||
|
describe('Reverser', function () {
|
||||||
|
|
||||||
|
var superagent, Reverse, apiRequests;
|
||||||
|
|
||||||
|
beforeEach(function () {
|
||||||
|
Reverse = require('./../app');
|
||||||
|
apiRequests = require('./../api-requests');
|
||||||
|
superagent = require('superagent');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should get results', function () {
|
||||||
|
var data = 'thing:thing';
|
||||||
|
superagent.__setResponse({status: 200, ok: 'ok', body: data});
|
||||||
|
spyOn(apiRequests, 'post').andCallThrough();
|
||||||
|
|
||||||
|
Reverse(data);
|
||||||
|
jest.runAllTimers();
|
||||||
|
|
||||||
|
expect(apiRequests.post).toHaveBeenCalledWith('/reverse/');
|
||||||
|
});
|
||||||
|
});
|
Reference in a new issue