Add metadata assertions for REST json responses
This commit is contained in:
parent
dc90d1024e
commit
73474ce67a
|
@ -17,6 +17,34 @@ var ds = loopback.createDataSource({
|
||||||
var Container = ds.createModel('container');
|
var Container = ds.createModel('container');
|
||||||
app.model(Container);
|
app.model(Container);
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Verify that the JSON response has the correct metadata properties.
|
||||||
|
* Please note the metadata vary by storage providers. This test assumes
|
||||||
|
* the 'filesystem' provider.
|
||||||
|
*
|
||||||
|
* @param {String} containerOrFile The container/file object
|
||||||
|
* @param {String} [name] The name to be checked if not undefined
|
||||||
|
*/
|
||||||
|
function verifyMetadata(containerOrFile, name) {
|
||||||
|
assert(containerOrFile);
|
||||||
|
|
||||||
|
// Name
|
||||||
|
if (name) {
|
||||||
|
assert.equal(containerOrFile.name, name);
|
||||||
|
}
|
||||||
|
// No sensitive information
|
||||||
|
assert(containerOrFile.uid === undefined);
|
||||||
|
assert(containerOrFile.gid === undefined);
|
||||||
|
|
||||||
|
// Timestamps
|
||||||
|
assert(containerOrFile.atime);
|
||||||
|
assert(containerOrFile.ctime);
|
||||||
|
assert(containerOrFile.mtime);
|
||||||
|
|
||||||
|
// Size
|
||||||
|
assert.equal(typeof containerOrFile.size, 'number');
|
||||||
|
}
|
||||||
|
|
||||||
describe('storage service', function () {
|
describe('storage service', function () {
|
||||||
var server = null;
|
var server = null;
|
||||||
before(function (done) {
|
before(function (done) {
|
||||||
|
@ -38,7 +66,7 @@ describe('storage service', function () {
|
||||||
.set('Content-Type', 'application/json')
|
.set('Content-Type', 'application/json')
|
||||||
.expect('Content-Type', /json/)
|
.expect('Content-Type', /json/)
|
||||||
.expect(200, function (err, res) {
|
.expect(200, function (err, res) {
|
||||||
assert.equal(res.body.name, 'test-container');
|
verifyMetadata(res.body, 'test-container');
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -50,7 +78,7 @@ describe('storage service', function () {
|
||||||
.set('Accept', 'application/json')
|
.set('Accept', 'application/json')
|
||||||
.expect('Content-Type', /json/)
|
.expect('Content-Type', /json/)
|
||||||
.expect(200, function (err, res) {
|
.expect(200, function (err, res) {
|
||||||
assert.equal(res.body.name, 'test-container');
|
verifyMetadata(res.body, 'test-container');
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -64,6 +92,9 @@ describe('storage service', function () {
|
||||||
.expect(200, function (err, res) {
|
.expect(200, function (err, res) {
|
||||||
assert(Array.isArray(res.body));
|
assert(Array.isArray(res.body));
|
||||||
assert.equal(res.body.length, 2);
|
assert.equal(res.body.length, 2);
|
||||||
|
res.body.forEach(function(c) {
|
||||||
|
verifyMetadata(c);
|
||||||
|
});
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -100,6 +131,9 @@ describe('storage service', function () {
|
||||||
.expect('Content-Type', /json/)
|
.expect('Content-Type', /json/)
|
||||||
.expect(200, function (err, res) {
|
.expect(200, function (err, res) {
|
||||||
assert(Array.isArray(res.body));
|
assert(Array.isArray(res.body));
|
||||||
|
res.body.forEach(function(f) {
|
||||||
|
verifyMetadata(f);
|
||||||
|
});
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -126,7 +160,7 @@ describe('storage service', function () {
|
||||||
.set('Accept', 'application/json')
|
.set('Accept', 'application/json')
|
||||||
.expect('Content-Type', /json/)
|
.expect('Content-Type', /json/)
|
||||||
.expect(200, function (err, res) {
|
.expect(200, function (err, res) {
|
||||||
assert.equal(res.body.name, 'test.jpg');
|
verifyMetadata(res.body, 'test.jpg');
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue