mirror of
https://github.com/wassname/talk.git
synced 2026-06-29 20:18:04 +08:00
96 lines
2.4 KiB
JavaScript
96 lines
2.4 KiB
JavaScript
require('../utils/mongoose');
|
|
|
|
const chai = require('chai');
|
|
const expect = chai.expect;
|
|
const server = require('../../app');
|
|
|
|
// Setup chai.
|
|
chai.should();
|
|
chai.use(require('chai-http'));
|
|
|
|
let fixture = {
|
|
'url': 'http://hhgg.com/total-perspective-vortex',
|
|
'type': 'article',
|
|
'headline': 'The Total Perspective Vortex',
|
|
'summary': 'You are an insignificant dot on an insignificant dot.',
|
|
'section': 'Everything',
|
|
'authors': ['Ford Prefect']
|
|
};
|
|
|
|
describe('Asset: models', () => {
|
|
|
|
describe('/GET Asset', () => {
|
|
describe('#get', () => {
|
|
it('It should get an empty array when there are no assets.', (done) => {
|
|
|
|
chai.request(server)
|
|
.get('/api/v1/asset')
|
|
.end((err, res) => {
|
|
|
|
if (err) {
|
|
throw new Error(err);
|
|
}
|
|
|
|
res.should.have.status(200);
|
|
res.body.should.be.a('array');
|
|
res.body.length.should.be.eql(0);
|
|
done();
|
|
});
|
|
|
|
});
|
|
});
|
|
});
|
|
|
|
// This test checks PUT and read
|
|
describe('/PUT Asset', () => {
|
|
describe('#put', () => {
|
|
it('It should save an asset and load it again.', (done) => {
|
|
|
|
chai.request(server)
|
|
.put('/api/v1/asset')
|
|
.send(fixture)
|
|
.end((err, res) => {
|
|
|
|
if (err) {
|
|
throw new Error(err);
|
|
}
|
|
|
|
res.should.have.status(200);
|
|
res.body.should.be.a('object');
|
|
|
|
// Id should be generated by the model if absent.
|
|
res.body.should.have.property('id');
|
|
|
|
// Save the asset id to compare with GET result.
|
|
let assetId = res.body.id;
|
|
|
|
// Load the asset to make sure it's really there.
|
|
chai.request(server)
|
|
.get(`/api/v1/asset?url=${encodeURIComponent(fixture.url)}`)
|
|
.end((err, res) => {
|
|
|
|
if (err) {
|
|
throw new Error(err);
|
|
}
|
|
|
|
res.should.have.status(200);
|
|
res.body.should.be.an('array');
|
|
|
|
let asset = res.body[0];
|
|
|
|
expect(asset).to.have.property('id');
|
|
|
|
// Ensure the asset has the same id as above.
|
|
// This tests the single url per Id concept.
|
|
expect(assetId).to.equal(asset.id);
|
|
|
|
done();
|
|
|
|
});
|
|
});
|
|
});
|
|
});
|
|
}); // End describe /PUT Asset
|
|
|
|
});
|