refactored user.ts
This commit is contained in:
@ -4,13 +4,13 @@ import db from "../db";
|
||||
|
||||
|
||||
export default class TestHelper {
|
||||
public static auth = {
|
||||
public static auth = { // test user credentials
|
||||
admin: {pass: 'Abc123!#', key: '000000000000000000001003'},
|
||||
janedoe: {pass: 'Xyz890*)', key: '000000000000000000001002'},
|
||||
user: {pass: 'Xyz890*)', key: '000000000000000000001001'},
|
||||
johnnydoe: {pass: 'Xyz890*)', key: '000000000000000000001004'}
|
||||
}
|
||||
public static res = {
|
||||
public static res = { // default responses
|
||||
400: {status: 'Bad request'},
|
||||
401: {status: 'Unauthorized'},
|
||||
403: {status: 'Forbidden'},
|
||||
@ -40,10 +40,10 @@ export default class TestHelper {
|
||||
|
||||
static request (server, done, options) { // options in form: {method, url, auth: {key/basic: 'name' or 'key'/{name, pass}}, httpStatus, req, res}
|
||||
let st = supertest(server);
|
||||
if (options.hasOwnProperty('auth') && options.auth.hasOwnProperty('key')) {
|
||||
if (options.hasOwnProperty('auth') && options.auth.hasOwnProperty('key')) { // resolve API key
|
||||
options.url += '?key=' + (this.auth.hasOwnProperty(options.auth.key)? this.auth[options.auth.key].key : options.auth.key);
|
||||
}
|
||||
switch (options.method) {
|
||||
switch (options.method) { // http method
|
||||
case 'get':
|
||||
st = st.get(options.url)
|
||||
break;
|
||||
@ -57,10 +57,10 @@ export default class TestHelper {
|
||||
st = st.delete(options.url)
|
||||
break;
|
||||
}
|
||||
if (options.hasOwnProperty('req')) {
|
||||
if (options.hasOwnProperty('req')) { // request body
|
||||
st = st.send(options.req);
|
||||
}
|
||||
if (options.hasOwnProperty('auth') && options.auth.hasOwnProperty('basic')) {
|
||||
if (options.hasOwnProperty('auth') && options.auth.hasOwnProperty('basic')) { // resolve basic auth
|
||||
if (this.auth.hasOwnProperty(options.auth.basic)) {
|
||||
st = st.auth(options.auth.basic, this.auth[options.auth.basic].pass)
|
||||
}
|
||||
@ -70,21 +70,21 @@ export default class TestHelper {
|
||||
}
|
||||
st = st.expect('Content-type', /json/)
|
||||
.expect(options.httpStatus);
|
||||
if (options.hasOwnProperty('res')) {
|
||||
if (options.hasOwnProperty('res')) { // evaluate result
|
||||
return st.end((err, res) => {
|
||||
if (err) return done (err);
|
||||
should(res.body).be.eql(options.res);
|
||||
done();
|
||||
});
|
||||
}
|
||||
else if (this.res.hasOwnProperty(options.httpStatus) && options.default !== false) {
|
||||
else if (this.res.hasOwnProperty(options.httpStatus) && options.default !== false) { // evaluate default results
|
||||
return st.end((err, res) => {
|
||||
if (err) return done (err);
|
||||
should(res.body).be.eql(this.res[options.httpStatus]);
|
||||
done();
|
||||
});
|
||||
}
|
||||
else {
|
||||
else { // return object to do .end() manually
|
||||
return st;
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,7 @@
|
||||
import db from '../db';
|
||||
|
||||
// script to load test db into dev db for a clean start
|
||||
|
||||
db.connect('dev', () => {
|
||||
console.info('dropping data...');
|
||||
db.drop(() => { // reset database
|
||||
|
Reference in New Issue
Block a user