Archived
2

implemented changelog

This commit is contained in:
VLE2FE
2020-06-05 08:50:06 +02:00
parent 74080d0902
commit ca29cef48c
33 changed files with 905 additions and 112 deletions

View File

@ -596,6 +596,64 @@
"key": "000000000000000000001004",
"__v": 0
}
],
"changelogs": [
{
"_id" : {"$oid": "120000010000000000000000"},
"action" : "PUT /sample/400000000000000000000001",
"collectionName" : "samples",
"conditions" : {
"_id" : {"$oid": "400000000000000000000001"}
},
"data" : {
"type" : "part",
"status" : 0
},
"user_id" : {"$oid": "000000000000000000000003"},
"__v" : 0
},
{
"_id" : {"$oid": "120000020000000000000000"},
"action" : "PUT /sample/400000000000000000000001",
"collectionName" : "samples",
"conditions" : {
"_id" : {"$oid": "400000000000000000000001"}
},
"data" : {
"type" : "part",
"status" : 0
},
"user_id" : {"$oid": "000000000000000000000003"},
"__v" : 0
},
{
"_id" : {"$oid": "120000030000000000000000"},
"action" : "PUT /sample/400000000000000000000001",
"collectionName" : "samples",
"conditions" : {
"_id" : {"$oid": "400000000000000000000001"}
},
"data" : {
"type" : "part",
"status" : 0
},
"user_id" : {"$oid": "000000000000000000000003"},
"__v" : 0
},
{
"_id" : {"$oid": "120000040000000000000000"},
"action" : "PUT /sample/400000000000000000000001",
"collectionName" : "samples",
"conditions" : {
"_id" : {"$oid": "400000000000000000000001"}
},
"data" : {
"type" : "part",
"status" : 0
},
"user_id" : {"$oid": "000000000000000000000003"},
"__v" : 0
}
]
}
}

View File

@ -1,14 +1,17 @@
import supertest from 'supertest';
import should from 'should/as-function';
import db from "../db";
import _ from 'lodash';
import db from '../db';
import ChangelogModel from '../models/changelog';
import IdValidate from '../routes/validate/id';
export default class TestHelper {
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'}
admin: {pass: 'Abc123!#', key: '000000000000000000001003', id: '000000000000000000000003'},
janedoe: {pass: 'Xyz890*)', key: '000000000000000000001002', id: '000000000000000000000002'},
user: {pass: 'Xyz890*)', key: '000000000000000000001001', id: '000000000000000000000001'},
johnnydoe: {pass: 'Xyz890*)', key: '000000000000000000001004', id: '000000000000000000000004'}
}
public static res = { // default responses
@ -92,6 +95,35 @@ export default class TestHelper {
done();
});
}
else if (options.hasOwnProperty('log')) { // check changelog, takes log: {collection, skip, data/(dataAdd, dataIgn)}
return st.end(err => {
if (err) return done (err);
ChangelogModel.findOne({}).sort({_id: -1}).skip(options.log.skip? options.log.skip : 0).lean().exec((err, data) => { // latest entry
if (err) return done(err);
should(data).have.only.keys('_id', 'action', 'collectionName', 'conditions', 'data', 'user_id', '__v');
should(data).have.property('action', options.method.toUpperCase() + ' ' + options.url);
should(data).have.property('collectionName', options.log.collection);
if (options.log.hasOwnProperty('data')) {
should(data).have.property('data', options.log.data);
}
else {
const ignore = ['_id', '__v'];
if (options.log.hasOwnProperty('dataIgn')) {
ignore.push(...options.log.dataIgn);
}
let tmp = options.req ? options.req : {};
if (options.log.hasOwnProperty('dataAdd')) {
_.assign(tmp, options.log.dataAdd)
}
should(IdValidate.stringify(_.omit(data.data, ignore))).be.eql(_.omit(tmp, ignore));
}
if (data.user_id) {
should(data.user_id.toString()).be.eql(this.auth[options.auth.basic].id);
}
done();
});
});
}
else { // return object to do .end() manually
return st;
}