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",
|
||||
"main": "src/app.js",
|
||||
"scripts": {
|
||||
"test": "npm run lint",
|
||||
"test": "jest && npm run lint",
|
||||
"lint": "eslint -c node_modules/eslint-config/.eslintrc 'src'",
|
||||
"create-build-dirs": "mkdir -p build",
|
||||
"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