131 lines
4.4 KiB
JavaScript
131 lines
4.4 KiB
JavaScript
const chai = require('chai');
|
|
const expect = chai.expect;
|
|
const chaiHttp = require('chai-http');
|
|
const { site, testing } = require('../../config/speechConfig.js');
|
|
const { host } = site;
|
|
const { testChannel, testChannelPassword } = testing;
|
|
const requestTimeout = 20000;
|
|
const publishTimeout = 120000;
|
|
const fs = require('fs');
|
|
|
|
chai.use(chaiHttp);
|
|
|
|
function testFor200StatusResponse (host, url) {
|
|
return it(`should receive a status code 200 within ${requestTimeout}ms`, function (done) {
|
|
chai.request(host)
|
|
.get(url)
|
|
.end(function (err, res) {
|
|
expect(err).to.be.null;
|
|
expect(res).to.have.status(200);
|
|
done();
|
|
});
|
|
}).timeout(requestTimeout);
|
|
}
|
|
|
|
function testShowRequestFor200StatusResponse (host, url) {
|
|
return it(`should receive a status code 200 within ${requestTimeout}ms`, function (done) {
|
|
chai.request(host)
|
|
.get(url)
|
|
.set('accept', 'text/html')
|
|
.end(function (err, res) {
|
|
expect(err).to.be.null;
|
|
expect(res).to.have.status(200);
|
|
done();
|
|
});
|
|
}).timeout(requestTimeout);
|
|
}
|
|
|
|
describe('end-to-end', function () {
|
|
describe('serve requests not from browser', function () {
|
|
const claimUrl = '/doitlive.jpg';
|
|
const claimUrlWithShortClaimId = '/d/doitlive.jpg';
|
|
const claimUrlWithLongClaimId = '/ca3023187e901df9e9aabd95d6ae09b6cc69b3f0/doitlive.jpg';
|
|
|
|
describe(claimUrl, function () {
|
|
testFor200StatusResponse(host, claimUrl);
|
|
});
|
|
describe(claimUrlWithShortClaimId, function () {
|
|
testFor200StatusResponse(host, claimUrlWithShortClaimId);
|
|
});
|
|
describe(claimUrlWithLongClaimId, function () {
|
|
testFor200StatusResponse(host, claimUrlWithShortClaimId);
|
|
});
|
|
});
|
|
|
|
describe('show requests from browser', function () {
|
|
const claimUrl = '/doitlive';
|
|
const claimUrlWithShortClaimId = '/d/doitlive';
|
|
const claimUrlWithLongClaimId = '/ca3023187e901df9e9aabd95d6ae09b6cc69b3f0/doitlive';
|
|
|
|
describe(claimUrl, function () {
|
|
testShowRequestFor200StatusResponse(host, claimUrl);
|
|
});
|
|
describe(claimUrlWithShortClaimId, function () {
|
|
testShowRequestFor200StatusResponse(host, claimUrlWithShortClaimId);
|
|
});
|
|
describe(claimUrlWithLongClaimId, function () {
|
|
testShowRequestFor200StatusResponse(host, claimUrlWithShortClaimId);
|
|
});
|
|
});
|
|
|
|
describe('serve requests browser (show lite)', function () {
|
|
const claimUrl = '/doitlive.jpg';
|
|
const claimUrlWithShortClaimId = '/d/doitlive.jpg';
|
|
const claimUrlWithLongClaimId = '/ca3023187e901df9e9aabd95d6ae09b6cc69b3f0/doitlive.jpg';
|
|
|
|
describe(claimUrl, function () {
|
|
testShowRequestFor200StatusResponse(host, claimUrl);
|
|
});
|
|
describe(claimUrlWithShortClaimId, function () {
|
|
testShowRequestFor200StatusResponse(host, claimUrlWithShortClaimId);
|
|
});
|
|
describe(claimUrlWithLongClaimId, function () {
|
|
testShowRequestFor200StatusResponse(host, claimUrlWithShortClaimId);
|
|
});
|
|
});
|
|
|
|
describe('publish', function () {
|
|
const publishUrl = '/api/claim-publish';
|
|
const date = new Date();
|
|
const name = `test-publish-${date.getFullYear()}-${date.getMonth()}-${date.getDate()}-${date.getTime()}`;
|
|
const filePath = './test/mock-data/bird.jpeg';
|
|
const fileName = 'byrd.jpeg';
|
|
const channelName = testChannel;
|
|
const channelPassword = testChannelPassword;
|
|
|
|
describe(publishUrl, function () {
|
|
it(`non-channel publishes should receive a status code 200 within ${publishTimeout}ms @usesLbc`, function (done) {
|
|
chai.request(host)
|
|
.post(publishUrl)
|
|
.type('form')
|
|
.attach('file', fs.readFileSync(filePath), fileName)
|
|
.field('name', name)
|
|
.end(function (err, res) {
|
|
// expect(err).to.be.null;
|
|
expect(res).to.have.status(200);
|
|
done();
|
|
});
|
|
}).timeout(publishTimeout);
|
|
});
|
|
|
|
describe(publishUrl, function () {
|
|
it(`channel publishes should receive a status code 200 within ${publishTimeout}ms @usesLbc`, function (done) {
|
|
chai.request(host)
|
|
.post(publishUrl)
|
|
.type('form')
|
|
.attach('file', fs.readFileSync(filePath), fileName)
|
|
.field('name', name)
|
|
.field('channelName', channelName)
|
|
.field('channelPassword', channelPassword)
|
|
.end(function (err, res) {
|
|
// expect(err).to.be.null;
|
|
expect(res).to.have.status(200);
|
|
done();
|
|
});
|
|
}).timeout(publishTimeout);
|
|
});
|
|
|
|
});
|
|
|
|
|
|
});
|