spee.ch/test/end-to-end/end-to-end.tests.js

195 lines
6.7 KiB
JavaScript
Raw Normal View History

2017-12-15 16:24:29 +01:00
const chai = require('chai');
const expect = chai.expect;
const chaiHttp = require('chai-http');
2018-06-06 04:34:24 +02:00
const { details: { host } } = require('@config/siteConfig');
2018-06-06 03:35:19 +02:00
const { testChannel, testChannelId, testChannelPassword } = require('@devConfig/testingConfig.js');
2017-12-15 23:10:34 +01:00
const requestTimeout = 20000;
const publishTimeout = 120000;
const fs = require('fs');
2017-12-15 16:24:29 +01:00
chai.use(chaiHttp);
2017-12-15 21:28:02 +01:00
function testFor200StatusResponse (host, url) {
2017-12-15 23:10:34 +01:00
return it(`should receive a status code 200 within ${requestTimeout}ms`, function (done) {
2017-12-15 16:24:29 +01:00
chai.request(host)
.get(url)
.end(function (err, res) {
expect(err).to.be.null;
expect(res).to.have.status(200);
done();
});
2017-12-15 23:10:34 +01:00
}).timeout(requestTimeout);
2017-12-15 16:24:29 +01:00
}
2017-12-15 21:28:02 +01:00
function testShowRequestFor200StatusResponse (host, url) {
2017-12-15 23:10:34 +01:00
return it(`should receive a status code 200 within ${requestTimeout}ms`, function (done) {
2017-12-15 16:24:29 +01:00
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();
});
2017-12-15 23:10:34 +01:00
}).timeout(requestTimeout);
2017-12-15 16:24:29 +01:00
}
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 () {
2017-12-15 21:28:02 +01:00
testFor200StatusResponse(host, claimUrl);
2017-12-15 16:24:29 +01:00
});
describe(claimUrlWithShortClaimId, function () {
2017-12-15 21:28:02 +01:00
testFor200StatusResponse(host, claimUrlWithShortClaimId);
2017-12-15 16:24:29 +01:00
});
describe(claimUrlWithLongClaimId, function () {
2017-12-15 21:28:02 +01:00
testFor200StatusResponse(host, claimUrlWithShortClaimId);
2017-12-15 16:24:29 +01:00
});
});
describe('show requests from browser', function () {
const claimUrl = '/doitlive';
const claimUrlWithShortClaimId = '/d/doitlive';
const claimUrlWithLongClaimId = '/ca3023187e901df9e9aabd95d6ae09b6cc69b3f0/doitlive';
describe(claimUrl, function () {
2017-12-15 21:28:02 +01:00
testShowRequestFor200StatusResponse(host, claimUrl);
2017-12-15 16:24:29 +01:00
});
describe(claimUrlWithShortClaimId, function () {
2017-12-15 21:28:02 +01:00
testShowRequestFor200StatusResponse(host, claimUrlWithShortClaimId);
2017-12-15 16:24:29 +01:00
});
describe(claimUrlWithLongClaimId, function () {
2017-12-15 21:28:02 +01:00
testShowRequestFor200StatusResponse(host, claimUrlWithShortClaimId);
2017-12-15 16:24:29 +01:00
});
});
describe('serve requests browser (show lite)', function () {
const claimUrl = '/doitlive.jpg';
const claimUrlWithShortClaimId = '/d/doitlive.jpg';
const claimUrlWithLongClaimId = '/ca3023187e901df9e9aabd95d6ae09b6cc69b3f0/doitlive.jpg';
describe(claimUrl, function () {
2017-12-15 21:28:02 +01:00
testShowRequestFor200StatusResponse(host, claimUrl);
2017-12-15 16:24:29 +01:00
});
describe(claimUrlWithShortClaimId, function () {
2017-12-15 21:28:02 +01:00
testShowRequestFor200StatusResponse(host, claimUrlWithShortClaimId);
2017-12-15 16:24:29 +01:00
});
describe(claimUrlWithLongClaimId, function () {
2017-12-15 21:28:02 +01:00
testShowRequestFor200StatusResponse(host, claimUrlWithShortClaimId);
2017-12-15 16:24:29 +01:00
});
});
2017-12-15 23:10:34 +01:00
describe('channel data request from client', function () {
const url = '/@test';
const urlWithShortClaimId = '/@test:3';
const urlWithMediumClaimId = '/@test:3b5bc6b6819172c6';
const urlWithLongClaimId = '/@test:3b5bc6b6819172c6e2f3f90aa855b14a956b4a82';
describe(url, function () {
it('should pass the tests I write here');
});
describe(urlWithShortClaimId, function () {
it('should pass the tests I write here');
});
describe(urlWithMediumClaimId, function () {
it('should pass the tests I write here');
});
describe(urlWithLongClaimId, function () {
it('should pass the tests I write here');
});
});
describe('publish requests', function () {
2018-02-07 06:55:04 +01:00
const publishUrl = '/api/claim/publish';
2017-12-19 00:23:23 +01:00
const filePath = './test/mock-data/bird.jpeg';
2017-12-15 23:10:34 +01:00
const fileName = 'byrd.jpeg';
const channelName = testChannel;
const channelId = testChannelId;
const channelPassword = testChannelPassword;
2018-03-06 03:50:37 +01:00
const date = new Date();
const name = `test-publish-${date.getFullYear()}-${date.getMonth()}-${date.getDate()}-${date.getTime()}`;
describe('api/claim/publish', function () {
it(`should receive a status code 400 if username does not exist`, function (done) {
chai.request(host)
.post(publishUrl)
.type('form')
.attach('file', fs.readFileSync(filePath), fileName)
.field('name', name)
.field('channelName', `@${name}`)
.field('channelPassword', channelPassword)
.end(function (err, res) {
expect(res).to.have.status(400);
done();
});
}).timeout(publishTimeout);
it(`should receive a status code 400 if the wrong password is used with the channel name`, function (done) {
2018-03-06 03:50:37 +01:00
chai.request(host)
.post(publishUrl)
.type('form')
.attach('file', fs.readFileSync(filePath), fileName)
.field('name', name)
.field('channelName', channelName)
.field('channelPassword', 'xxxxx')
.end(function (err, res) {
expect(res).to.have.status(400);
done();
});
}).timeout(publishTimeout);
it(`should receive a status code 400 if the wrong password is used with the channel id`, function (done) {
chai.request(host)
.post(publishUrl)
.type('form')
.attach('file', fs.readFileSync(filePath), fileName)
.field('name', name)
.field('channelName', channelName)
.field('channelPassword', 'xxxxx')
.end(function (err, res) {
expect(res).to.have.status(400);
done();
});
}).timeout(publishTimeout);
2018-03-06 03:50:37 +01:00
});
2017-12-15 23:10:34 +01:00
describe('anonymous publishes', function () {
it(`should receive a status code 200 within ${publishTimeout}ms @usesLbc`, function (done) {
2017-12-15 23:10:34 +01:00
chai.request(host)
.post(publishUrl)
.type('form')
.attach('file', fs.readFileSync(filePath), fileName)
2018-03-06 03:50:37 +01:00
.field('name', `${name}-anonymous`)
2017-12-15 23:10:34 +01:00
.end(function (err, res) {
expect(res).to.have.status(200);
done();
});
}).timeout(publishTimeout);
});
describe('in-channel publishes', function () {
it(`should receive a status code 200 within ${publishTimeout}ms @usesLbc`, function (done) {
2017-12-21 18:37:22 +01:00
chai.request(host)
.post(publishUrl)
.type('form')
.attach('file', fs.readFileSync(filePath), fileName)
2018-03-06 03:50:37 +01:00
.field('name', `${name}-channel`)
2017-12-21 18:37:22 +01:00
.field('channelName', channelName)
.field('channelPassword', channelPassword)
.end(function (err, res) {
expect(res).to.have.status(200);
done();
});
}).timeout(publishTimeout);
});
2017-12-15 23:10:34 +01:00
});
2017-12-15 16:24:29 +01:00
});