add openhack files
This commit is contained in:
217
apis/userprofile/tests/user/{userID}.js_
Normal file
217
apis/userprofile/tests/user/{userID}.js_
Normal file
@ -0,0 +1,217 @@
|
||||
'use strict';
|
||||
var Test = require('tape');
|
||||
var Express = require('express');
|
||||
var BodyParser = require('body-parser');
|
||||
var Swaggerize = require('swaggerize-express');
|
||||
var Path = require('path');
|
||||
var Request = require('supertest');
|
||||
var Mockgen = require('../../data/mockgen.js');
|
||||
var Parser = require('swagger-parser');
|
||||
/**
|
||||
* Test for /user/{userID}
|
||||
*/
|
||||
Test('/user/{userID}', function (t) {
|
||||
var apiPath = Path.resolve(__dirname, '../../config/swagger.json');
|
||||
var App = Express();
|
||||
App.use(BodyParser.json());
|
||||
App.use(BodyParser.urlencoded({
|
||||
extended: true
|
||||
}));
|
||||
App.use(Swaggerize({
|
||||
api: apiPath,
|
||||
handlers: Path.resolve(__dirname, '../../handlers')
|
||||
}));
|
||||
Parser.validate(apiPath, function (err, api) {
|
||||
t.error(err, 'No parse error');
|
||||
t.ok(api, 'Valid swagger api');
|
||||
/**
|
||||
* summary:
|
||||
* description: Get a User Profile by ID
|
||||
* parameters:
|
||||
* produces:
|
||||
* responses: 200, default
|
||||
*/
|
||||
t.test('test userGET get operation', function (t) {
|
||||
Mockgen().requests({
|
||||
path: '/user/{userID}',
|
||||
operation: 'get'
|
||||
}, function (err, mock) {
|
||||
var request;
|
||||
t.error(err);
|
||||
t.ok(mock);
|
||||
t.ok(mock.request);
|
||||
//Get the resolved path from mock request
|
||||
//Mock request Path templates({}) are resolved using path parameters
|
||||
request = Request(App)
|
||||
.get('/api' + mock.request.path);
|
||||
if (mock.request.body) {
|
||||
//Send the request body
|
||||
request = request.send(mock.request.body);
|
||||
} else if (mock.request.formData){
|
||||
//Send the request form data
|
||||
request = request.send(mock.request.formData);
|
||||
//Set the Content-Type as application/x-www-form-urlencoded
|
||||
request = request.set('Content-Type', 'application/x-www-form-urlencoded');
|
||||
}
|
||||
// If headers are present, set the headers.
|
||||
if (mock.request.headers && mock.request.headers.length > 0) {
|
||||
Object.keys(mock.request.headers).forEach(function (headerName) {
|
||||
request = request.set(headerName, mock.request.headers[headerName]);
|
||||
});
|
||||
}
|
||||
request.end(function (err, res) {
|
||||
t.error(err, 'No error');
|
||||
t.ok(res.statusCode === 200, 'Ok response status');
|
||||
var Validator = require('is-my-json-valid');
|
||||
var validate = Validator(api.paths['/user/{userID}']['get']['responses']['200']['schema']);
|
||||
var response = res.body;
|
||||
if (Object.keys(response).length <= 0) {
|
||||
response = res.text;
|
||||
}
|
||||
t.ok(validate(response), 'Valid response');
|
||||
t.error(validate.errors, 'No validation errors');
|
||||
t.end();
|
||||
});
|
||||
});
|
||||
});/**
|
||||
* summary:
|
||||
* description: Declares and creates a new profile
|
||||
* parameters: _profile
|
||||
* produces:
|
||||
* responses: 201, default
|
||||
*/
|
||||
t.test('test userPOST post operation', function (t) {
|
||||
Mockgen().requests({
|
||||
path: '/user/{userID}',
|
||||
operation: 'post'
|
||||
}, function (err, mock) {
|
||||
var request;
|
||||
t.error(err);
|
||||
t.ok(mock);
|
||||
t.ok(mock.request);
|
||||
//Get the resolved path from mock request
|
||||
//Mock request Path templates({}) are resolved using path parameters
|
||||
request = Request(App)
|
||||
.post('/api' + mock.request.path);
|
||||
if (mock.request.body) {
|
||||
//Send the request body
|
||||
request = request.send(mock.request.body);
|
||||
} else if (mock.request.formData){
|
||||
//Send the request form data
|
||||
request = request.send(mock.request.formData);
|
||||
//Set the Content-Type as application/x-www-form-urlencoded
|
||||
request = request.set('Content-Type', 'application/x-www-form-urlencoded');
|
||||
}
|
||||
// If headers are present, set the headers.
|
||||
if (mock.request.headers && mock.request.headers.length > 0) {
|
||||
Object.keys(mock.request.headers).forEach(function (headerName) {
|
||||
request = request.set(headerName, mock.request.headers[headerName]);
|
||||
});
|
||||
}
|
||||
request.end(function (err, res) {
|
||||
t.error(err, 'No error');
|
||||
t.ok(res.statusCode === 201, 'Ok response status');
|
||||
var Validator = require('is-my-json-valid');
|
||||
var validate = Validator(api.paths['/user/{userID}']['post']['responses']['201']['schema']);
|
||||
var response = res.body;
|
||||
if (Object.keys(response).length <= 0) {
|
||||
response = res.text;
|
||||
}
|
||||
t.ok(validate(response), 'Valid response');
|
||||
t.error(validate.errors, 'No validation errors');
|
||||
t.end();
|
||||
});
|
||||
});
|
||||
});/**
|
||||
* summary:
|
||||
* description: Update User
|
||||
* parameters:
|
||||
* produces:
|
||||
* responses: 200, 404, default
|
||||
*/
|
||||
t.test('test updateUser patch operation', function (t) {
|
||||
Mockgen().requests({
|
||||
path: '/user/{userID}',
|
||||
operation: 'patch'
|
||||
}, function (err, mock) {
|
||||
var request;
|
||||
t.error(err);
|
||||
t.ok(mock);
|
||||
t.ok(mock.request);
|
||||
//Get the resolved path from mock request
|
||||
//Mock request Path templates({}) are resolved using path parameters
|
||||
request = Request(App)
|
||||
.patch('/api' + mock.request.path);
|
||||
if (mock.request.body) {
|
||||
//Send the request body
|
||||
request = request.send(mock.request.body);
|
||||
} else if (mock.request.formData){
|
||||
//Send the request form data
|
||||
request = request.send(mock.request.formData);
|
||||
//Set the Content-Type as application/x-www-form-urlencoded
|
||||
request = request.set('Content-Type', 'application/x-www-form-urlencoded');
|
||||
}
|
||||
// If headers are present, set the headers.
|
||||
if (mock.request.headers && mock.request.headers.length > 0) {
|
||||
Object.keys(mock.request.headers).forEach(function (headerName) {
|
||||
request = request.set(headerName, mock.request.headers[headerName]);
|
||||
});
|
||||
}
|
||||
request.end(function (err, res) {
|
||||
t.error(err, 'No error');
|
||||
t.ok(res.statusCode === 200, 'Ok response status');
|
||||
var Validator = require('is-my-json-valid');
|
||||
var validate = Validator(api.paths['/user/{userID}']['patch']['responses']['200']['schema']);
|
||||
var response = res.body;
|
||||
if (Object.keys(response).length <= 0) {
|
||||
response = res.text;
|
||||
}
|
||||
t.ok(validate(response), 'Valid response');
|
||||
t.error(validate.errors, 'No validation errors');
|
||||
t.end();
|
||||
});
|
||||
});
|
||||
});/**
|
||||
* summary:
|
||||
* description: Delete User By ID
|
||||
* parameters:
|
||||
* produces:
|
||||
* responses: 204, 404, default
|
||||
*/
|
||||
t.test('test userDELETE delete operation', function (t) {
|
||||
Mockgen().requests({
|
||||
path: '/user/{userID}',
|
||||
operation: 'delete'
|
||||
}, function (err, mock) {
|
||||
var request;
|
||||
t.error(err);
|
||||
t.ok(mock);
|
||||
t.ok(mock.request);
|
||||
//Get the resolved path from mock request
|
||||
//Mock request Path templates({}) are resolved using path parameters
|
||||
request = Request(App)
|
||||
.delete('/api' + mock.request.path);
|
||||
if (mock.request.body) {
|
||||
//Send the request body
|
||||
request = request.send(mock.request.body);
|
||||
} else if (mock.request.formData){
|
||||
//Send the request form data
|
||||
request = request.send(mock.request.formData);
|
||||
//Set the Content-Type as application/x-www-form-urlencoded
|
||||
request = request.set('Content-Type', 'application/x-www-form-urlencoded');
|
||||
}
|
||||
// If headers are present, set the headers.
|
||||
if (mock.request.headers && mock.request.headers.length > 0) {
|
||||
Object.keys(mock.request.headers).forEach(function (headerName) {
|
||||
request = request.set(headerName, mock.request.headers[headerName]);
|
||||
});
|
||||
}
|
||||
request.end(function (err, res) {
|
||||
t.error(err, 'No error');
|
||||
t.ok(res.statusCode === 204, 'Ok response status');
|
||||
t.end();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
Reference in New Issue
Block a user